Android(安卓)ListView CheckBox点击事件
16lz
2021-12-04
列表Item点击,CheckBox状态切换,滑动CheckBox状态保持
main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"><ListView android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="5dip" android:id="@+id/ListView"></ListView></LinearLayout>
listitem.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/linear"android:layout_width="wrap_content"android:layout_height="wrap_content"android:padding="10dip" ><TextViewandroid:id="@+id/wishname"android:layout_width="100px"android:layout_height="wrap_content"android:gravity="left"android:text="TextView01"android:textSize="20dip" /><CheckBoxandroid:id="@+id/checkBox1"android:layout_width="40px"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:layout_marginLeft="140dp"android:focusable="false" ></CheckBox></LinearLayout>
Main.javaimport java.util.HashMap;import java.util.Map;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.BaseAdapter;import android.widget.CheckBox;import android.widget.CompoundButton;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;public class Main extends Activity {private ListView list;private ListAdapter listadapter;private String[] arr = new String[20];private Map<Integer, Boolean> status = new HashMap<Integer, Boolean>();/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);for(int i=0;i<20;i++){arr[i] = i+""+i+""+i+""+i;status.put(i, false);}// 绑定Layout里面的ListViewlist = (ListView) findViewById(R.id.ListView);listadapter = new ListAdapter();// 添加并且显示list.setAdapter(listadapter);// 添加点击事件list.setOnItemClickListener(new OnItemClickListener() {public void onItemClick(AdapterView<?> parent, View view,int position, long id) {Toast.makeText(Main.this, "Item点击事件", Toast.LENGTH_SHORT).show();}});}private class ListAdapter extends BaseAdapter {public int getCount() {return arr.length;}public Object getItem(int position) {return position;}public long getItemId(int position) {return position;}public View getView(final int position, View view, ViewGroup parent) {// 获取布局文件if (view == null) {view = getLayoutInflater().inflate(R.layout.listitem, null);}// 获取控件TextView name = (TextView) view.findViewById(R.id.wishname);CheckBox ck = (CheckBox) view.findViewById(R.id.checkBox1);ck.setChecked(status.get(position));if (arr != null) {name.setText(arr[position]);ck.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {status.put(position, !status.get(position));Toast.makeText(Main.this, "CheckBox点击事件", Toast.LENGTH_SHORT).show();}});}return view;}}}
更多相关文章
- Android开发 准备工作
- android rom短信模块最后获取的Cursor字段内容
- Android(安卓)SDK 2.0安装、配置图文教程
- Android(安卓)存储选项之 SQLiteDatabase 源码分析
- android 5.0以上版本控件点击 水波纹效果
- 更新sdk后,点击sdk管理器报出location of the android sdk has n
- Android(安卓)Contacts(一)—— 读取联系人
- android中listview中去除背景色选中色
- android http 请求方式