布局用到组合控件,适配器展示RecyclerView
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.bwie.d.yuekaogouwu1.MainActivity"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/recycle"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="0dp"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0"
android:orientation="horizontal">
<CheckBox
android:id="@+id/quanxuan"
android:layout_weight="0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="全选"/>
<LinearLayout
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:text="总价"
android:id="@+id/zong"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:text="数量"
android:id="@+id/liang"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<Button
android:text="去结算"
android:layout_weight="0"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
适配器的布局文件引入组合控件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<CheckBox
android:id="@+id/shop_check"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/shop_name"
android:textSize="20sp"
android:text="商户名称"
android:layout_marginLeft="15dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:layout_marginLeft="30dp"
android:gravity="center_vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<CheckBox
android:id="@+id/checkbox"
android:layout_weight="0"
android:layout_gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ImageView
android:id="@+id/shopface"
android:src="@mipmap/ic_launcher"
android:layout_width="100dp"
android:layout_height="100dp" />
<LinearLayout
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="200dp"
android:orientation="vertical">
<TextView
android:id="@+id/shoptitle"
android:layout_marginLeft="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="商品信息"/>
<TextView
android:id="@+id/shopprice"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#f00"
android:text="商品价格"/>
<com.bwie.d.yuekaogouwu1.view.PlusView
android:id="@+id/plusView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"/>
</LinearLayout>
<Button
android:id="@+id/shopdel"
android:layout_gravity="center_vertical"
android:layout_weight="0"
android:text="删除"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
组合控件
<Button
android:id="@+id/revserse"
android:background="@drawable/minus2"
android:layout_width="30dp"
android:layout_height="30dp" />
<EditText
android:id="@+id/content"
android:text="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/add"
android:background="@drawable/plus2"
android:layout_width="30dp"
android:layout_height="30dp" />
MainActivity的逻辑代码
public class MainActivity extends AppCompatActivity implements MyPresenter.ViewCallBack{
private CheckBox quanxuan;
private TextView zong;
private TextView liang;
private RecyclerView recyclerView;
private MyPresenter presenter;
private MyAdapter adapter;
private LinearLayoutManager manager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = (RecyclerView) findViewById(R.id.recycle);
quanxuan = (CheckBox) findViewById(R.id.quanxuan);
zong = (TextView) findViewById(R.id.zong);
liang = (TextView) findViewById(R.id.liang);
presenter = new MyPresenter(this);
presenter.getdata();
adapter = new MyAdapter(MainActivity.this);
manager = new LinearLayoutManager(MainActivity.this,LinearLayoutManager.VERTICAL,false);
recyclerView.setLayoutManager(manager);
recyclerView.setAdapter(adapter);
adapter.setListener(new MyAdapter.UpdateUiListener() {
@Override
public void setTotal(String total, String num, boolean allcheck) {
zong.setText(total);
liang.setText(num);
quanxuan.setChecked(allcheck);
}
});
quanxuan.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
adapter.selectAll(quanxuan.isChecked());
}
});
}
@Override
public void success(GetBean getBean) {
adapter.add(getBean);
}
@Override
public void failure(Exception e) {
}
@Override
protected void onDestroy() {
super.onDestroy();
presenter.detach();
}
组合控件的逻辑代码
public class PlusView extends LinearLayout{
private EditText editText;
private Button add;
private Button revserse;
private int mCount = 1;
public PlusView(Context context) {
super(context);
}
public PlusView(Context context, AttributeSet attrs) {
super(context, attrs);
View view = View.inflate(context, R.layout.layout_recy, null);
editText = (EditText) view.findViewById(R.id.content);
add = (Button) view.findViewById(R.id.add);
revserse = (Button) view.findViewById(R.id.revserse);
add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
String trim = editText.getText().toString().trim();
int count = Integer.valueOf(trim)+1;
mCount = count;
editText.setText(count+"");
if(linsenter !=null){
linsenter.click(count);
}
}
});
revserse.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
String trim = editText.getText().toString().trim();
int count = Integer.valueOf(trim);
if(count>1){
count--;
mCount = count;
editText.setText(count+"");
}
if(linsenter!=null){
linsenter.click(count);
}
}
});
addView(view);
}
public void setEditView(int num){
if(editText!=null){
editText.setText(num+"");
}
}
public PlusView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
ClickLisenter linsenter;
public void setLinsenter(ClickLisenter linsenter){
this.linsenter = linsenter;
}
public interface ClickLisenter{
public void click(int count);
}
}