流式布局
package com.example.shopcart04.activity;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import com.example.shopcart04.R;
import com.example.shopcart04.view.MyView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private EditText edit_query;
private TextView text_clear;
private Button btn_search;
private MyView myView;
private List<String> list=new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化控件
edit_query = (EditText) findViewById(R.id.edit_query);
text_clear = (TextView) findViewById(R.id.text_clear);
btn_search = (Button) findViewById(R.id.btn_search);
myView = (MyView) findViewById(R.id.myView);
text_clear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myView.removeAllViews();
}
});
btn_search.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String st = edit_query.getText().toString();
list.add(st);
TextView textView = new TextView(MainActivity.this);
textView.setText(st);
myView.addView(textView);
myView.setPadding(5,5,5,5);
}
});
myView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this,ShopCartActivity.class);
startActivity(intent);
finish();
}
});
}
}
购物车
package com.example.shopcart04.activity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.CheckBox;
import android.widget.TextView;
import com.example.shopcart04.R;
import com.example.shopcart04.adapter.ShopAdapter;
import com.example.shopcart04.bean.Bean;
import com.example.shopcart04.bean.ShopCartBean;
import com.example.shopcart04.mvp.IContract;
import com.example.shopcart04.mvp.IPresenter;
import com.google.gson.Gson;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.List;
public class ShopCartActivity extends AppCompatActivity implements IContract.iview {
private RecyclerView recyc_view_shop;
private CheckBox check_box_all;
private TextView text_total;
private TextView text_total_nums;
private IPresenter iPresenter;
private ShopAdapter adapter;
private List<ShopCartBean.DataBean> data;
private ShopCartBean shopCartBean;
private ShopCartBean bean;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_shop_cart);
EventBus.getDefault().register(this);
//初始化控件
recyc_view_shop = (RecyclerView) findViewById(R.id.recyc_view_shop);
check_box_all = (CheckBox) findViewById(R.id.check_box_all);
text_total = (TextView) findViewById(R.id.text_total);
text_total_nums = (TextView) findViewById(R.id.text_total_nums);
iPresenter = new IPresenter();
iPresenter.attachView(this);
iPresenter.requestInfo();
check_box_all.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (check_box_all.isChecked()) {
for (int i = 0; i < bean.getData().size(); i++) {
bean.getData().get(i).setOutchecked(true);
for (int j = 0; j < bean.getData().get(i).getList().size(); j++) {
bean.getData().get(i).getList().get(j).setInnerchecked(true);
}
}
} else {
for (int i = 0; i < bean.getData().size(); i++) {
bean.getData().get(i).setOutchecked(false);
for (int j = 0; j < bean.getData().get(i).getList().size(); j++) {
bean.getData().get(i).getList().get(j).setInnerchecked(false);
}
}
}
//总价的方法
initTotal();
adapter.notifyDataSetChanged();
}
});
}
private void initTotal() {
int total = 0;
int nums = 0;
for (int i = 0; i < bean.getData().size(); i++) {
for (int j = 0; j < bean.getData().get(i).getList().size(); j++) {
if (bean.getData().get(i).getList().get(j).isInnerchecked()) {
total += bean.getData().get(i).getList().get(j).getNum() * bean.getData().get(i).getList().get(j).getPrice();
}
}
}
text_total.setText("¥" + total + "元");
adapter.notifyDataSetChanged();
}
//接收加减的方法,,,,,主线程
@Subscribe(threadMode = ThreadMode.MAIN)
public void msg(Bean ha) {
initTotal();
}
@Override
public void ShowData(final String message) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Gson gson = new Gson();
bean = gson.fromJson(message, ShopCartBean.class);
data = bean.getData();
LinearLayoutManager manager = new LinearLayoutManager(ShopCartActivity.this, LinearLayoutManager.VERTICAL, false);
recyc_view_shop.setLayoutManager(manager);
adapter = new ShopAdapter(data, ShopCartActivity.this);
recyc_view_shop.setAdapter(adapter);
//控制商家条目
adapter.setOnclickchangelisten(new ShopAdapter.onclickchangelisten() {
@Override
public void onchecked(int layoutPosition, boolean checked) {
boolean b = true;
for (int i = 0; i < bean.getData().size(); i++) {
boolean outchecked = bean.getData().get(i).isOutchecked();
for (int j = 0; j < bean.getData().get(i).getList().size(); j++) {
boolean innerchecked = bean.getData().get(i).getList().get(j).isInnerchecked();
b = (b & outchecked & innerchecked);
}
}
check_box_all.setChecked(b);
adapter.notifyDataSetChanged();
}
@Override
public void onitemchecked(int layoutPosition, boolean ischecked) {
//设置外层的选中状态
bean.getData().get(layoutPosition).setOutchecked(ischecked);
boolean b = true;
for (int i = 0; i < bean.getData().size(); i++) {
boolean outchecked = bean.getData().get(i).isOutchecked();
for (int j = 0; j < bean.getData().get(i).getList().size(); j++) {
boolean innerchecked = bean.getData().get(i).getList().get(j).isInnerchecked();
b = (b & outchecked & innerchecked);
}
}
check_box_all.setChecked(b);
adapter.notifyDataSetChanged();
}
});
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
iPresenter.detachView(this);
EventBus.getDefault().unregister(this);
}
}