列表Item点击,CheckBox状态切换,滑动CheckBox状态保持
main.xml
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dip"
android:id="@+id/ListView"
>
listitem.xml
android:id="@+id/linear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dip" >
android:id="@+id/wishname"
android:layout_width="100px"
android:layout_height="wrap_content"
android:gravity="left"
android:text="TextView01"
android:textSize="20dip" />
android:id="@+id/checkBox1"
android:layout_width="40px"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginLeft="140dp"
android:focusable="false" >
Main.java
import 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 status = new HashMap();
/** Called when the activity is first created. */
@Override
public 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里面的ListView
list = (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() {
@Override
public void onClick(View v) {
status.put(position, !status.get(position));
Toast.makeText(Main.this, "CheckBox点击事件", Toast.LENGTH_SHORT).show();
}
});
}
return view;
}
}
}