布局
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.bawei.wangyiming.wangyiming1508a2017116.MainActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:id="@+id/navlayout" android:background="@android:color/holo_blue_light" > <TextView android:layout_width="0dp" android:layout_weight="4" android:layout_height="wrap_content" android:id="@+id/home_title" android:text="我的收藏" android:textSize="22sp" android:textStyle="bold" android:layout_gravity="center" android:gravity="center" android:background="@android:color/holo_blue_light" /> <Button android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="编辑" android:id="@+id/btn_bj" android:background="@android:color/holo_blue_light" /> </LinearLayout> <LinearLayout android:layout_below="@+id/navlayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:id="@+id/id1"> <Button android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:background="@android:color/white" android:text="商品" /> <Button android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:background="@android:color/white" android:text="路线/旅游攻略"/> </LinearLayout> <ListView android:layout_below="@+id/id1" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/mlistview" android:layout_above="@+id/caozuolayout" ></ListView> <LinearLayout android:layout_alignParentBottom="true" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/caozuolayout" android:orientation="horizontal" > <CheckBox android:layout_width="80dp" android:layout_height="50dp" android:id="@+id/checkall" android:text="全选" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btn_delete" android:text="删除" android:background="@android:color/white" /> </LinearLayout> </RelativeLayout>
MainActivity:
public class MainActivity extends AppCompatActivity implements IView { ListView listView; ArrayList<SuperClass.DataBean> mylist; UserPresenter userPresenter; MyListAdapter adapter; ArrayList<MyChecks> mychecklist; Button checkall; //MyRecyclerViewAdapter adapter; //RecyclerView recyclerview; LinearLayout layout; Button btn_bj; Button btn_delete; boolean ischeckall = false; boolean ischeck = false; // SharedPreferences sp; // SharedPreferences.Editor editor; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Fresco.initialize(this); setContentView(R.layout.activity_main); listView = (ListView) findViewById(R.id.mlistview); btn_bj = (Button) findViewById(R.id.btn_bj); layout = (LinearLayout) findViewById(R.id.caozuolayout); layout.setVisibility(View.GONE); checkall = (CheckBox) findViewById(R.id.checkall); btn_delete = (Button) findViewById(R.id.btn_delete); userPresenter = new UserPresenter(this); userPresenter.setJson(API.URL); // sp = getSharedPreferences("mydata",1); // editor = sp.edit(); inData(); // recyclerview = (RecyclerView) findViewById(R.id.mrecycler); //recyclerview.setLayoutManager(new LinearLayoutManager(this)); } public void inData(){ //显示隐藏编辑 btn_bj.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(ischeckall == true){ btn_bj.setText("编辑"); layout.setVisibility(View.GONE); for(int i = 0 ; i < mychecklist.size();i++){ mychecklist.set(i,new MyChecks(false,0)); } ischeckall = false; }else{ btn_bj.setText("完成"); layout.setVisibility(View.VISIBLE); for(int i = 0 ; i < mychecklist.size();i++){ mychecklist.set(i,new MyChecks(false,1)); } ischeckall = true; } adapter.notifyDataSetChanged(); } }); //全选 checkall.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(ischeck == false){ for(int i = 0 ; i < mychecklist.size();i++){ mychecklist.set(i,new MyChecks(true,1)); } ischeck =true; }else{ for(int i = 0 ; i < mychecklist.size();i++){ mychecklist.set(i,new MyChecks(false,1)); ischeck =false; } } adapter.notifyDataSetChanged(); } }); btn_delete.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { ArrayList<SuperClass.DataBean> deletelist = new ArrayList<SuperClass.DataBean>(); ArrayList<MyChecks> deltelist2 = new ArrayList<MyChecks>(); for(int i = 0 ; i < mylist.size();i++){ if(mychecklist.get(i).ischeck()==true){ deletelist.add(mylist.get(i)); deltelist2.add(mychecklist.get(i)); // mylist.remove(i); // mychecklist.remove(i); } } mylist.removeAll(deletelist); mychecklist.removeAll(deltelist2); if(mylist.size() == 0){ btn_bj.setText("编辑"); layout.setVisibility(View.GONE); ischeckall = false; } adapter.notifyDataSetChanged(); } }); } @Override public void setUser(ArrayList<SuperClass.DataBean> list) { String news_title = list.get(1).getNews_title(); Toast.makeText(this, news_title, Toast.LENGTH_SHORT).show(); // Log.d("Main","+++++++++++++++++++++++++++++++++"+news_title); mychecklist = new ArrayList<>(); mylist = new ArrayList<>(); mylist = list; for(int i = 0;i < list.size(); i++){ mychecklist.add(new MyChecks(false,0)); } adapter = new MyListAdapter(mychecklist,mylist,MainActivity.this); listView.setAdapter(adapter); //adapter = new MyRecyclerViewAdapter(list,MainActivity.this); //recyclerview.setAdapter(adapter); } }
Adapter:
public class MyListAdapter extends BaseAdapter { ArrayList<MyChecks> checklist; ArrayList<SuperClass.DataBean> list; Context context; public MyListAdapter(ArrayList<MyChecks> checklist, ArrayList<SuperClass.DataBean> list, Context context) { this.checklist = checklist; this.list = list; this.context = context; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return list.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(final int i, View view, ViewGroup viewGroup) { MyViewHolder holder; if(view == null){ view = LayoutInflater.from(context).inflate(R.layout.item_list,viewGroup,false); holder = new MyViewHolder(); holder.head = (SimpleDraweeView) view.findViewById(R.id.list_head); holder.mycheck = (CheckBox) view.findViewById(R.id.list_mycheck); holder.text = (TextView) view.findViewById(R.id.list_title); view.setTag(holder); }else{ holder = (MyViewHolder) view.getTag(); } for(int j = 0 ; j < checklist.size();j++){ if(checklist.get(j).getGone()==0){ holder.mycheck.setVisibility(View.GONE); }else{ holder.mycheck.setVisibility(View.VISIBLE); } } holder.mycheck.setChecked(checklist.get(i).ischeck()); Uri imageuri = Uri.parse(list.get(i).getPic_url()); holder.head.setImageURI(imageuri); holder.text.setText(list.get(i).getNews_title()); holder.mycheck.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(checklist.get(i).ischeck()==false){ checklist.set(i,new MyChecks(true,1)); }else{ checklist.set(i,new MyChecks(false,1)); } notifyDataSetChanged(); } }); return view; } static class MyViewHolder{ CheckBox mycheck; SimpleDraweeView head; TextView text; } }