避免listview里面checkbox错乱 布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.andy.news2.activity.LiXian"> <ListView android:id="@+id/lv" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout> MainActivity方法里的代码:public class LiXian extends AppCompatActivity { private ListView lv; private List<LiXian_Data> list = new ArrayList<>(); private LiXian_Adapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_li_xian); //查找控件 lv = (ListView) findViewById(R.id.lv); for (int i = 0; i < 50; i++) { LiXian_Data data = new LiXian_Data(); data.name = "item" + i; list.add(data); } adapter = new LiXian_Adapter(this, list); lv.setAdapter(adapter); }class LiXian_Adapter extends BaseAdapter { @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder=null; if(convertView==null){ convertView=View.inflate(context,R.layout.lixian_item,null); holder=new ViewHolder(); holder.tv=(TextView)convertView.findViewById(R.id.tv); holder.box=(CheckBox)convertView.findViewById(R.id.box); convertView.setTag(holder); }else{ holder= (ViewHolder) convertView.getTag(); } final LiXian_Data dataBean = list.get(position); holder.tv.setText(dataBean.name); holder.box.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { dataBean.isCheck=isChecked; } }); holder.box.setChecked(dataBean.isCheck); return convertView; } class ViewHolder{ TextView tv; CheckBox box; } }}
离线下载listview里面item的布局:<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="10dp"> <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="kjfhksjfs" /> <CheckBox android:id="@+id/box" android:layout_width="20dp" android:layout_height="20dp" android:layout_alignParentRight="true" android:checked="true" android:background="@drawable/checkbox" android:button="@null"/> </RelativeLayout>
离线下载
最新推荐文章于 2024-08-18 23:11:17 发布