androidclassListView的Item含有CheckBox时的处理
2013-05-27 19:24
211 查看
在写这篇文章之前,xxx已经写过了几篇关于改androidclass主题的文章,想要了解的朋友可以去翻一下之前的文章
main.xml如下:
listviewitem.xml如下:
ListViewAdapter如下:
每日一道理
时间好比一条小溪,它能招引我们奔向生活的海洋;时间如同一叶扁舟,它将帮助我们驶向理想的彼岸;时间犹如一支画笔,它会指点我们描绘人生的画卷。
MainActivity如下:
文章结束给大家分享下程序员的一些笑话语录:
Borland说我很有前途,Sun笑了;Sun说我很有钱,IBM笑了;IBM说我很专业,Sybase笑了;Sybase说我数据库很牛,Oracle笑了;Oracle说我是开放的,Linux笑了;Linux说我要打败Unix,微软笑了;微软说我的系统很稳定,我们都笑了。
---------------------------------
原创文章 By
android和class
---------------------------------
main.xml如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ListView android:id="@+id/listview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_centerInParent="true" /> </RelativeLayout>
listviewitem.xml如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="70dip" > <TextView android:id="@+id/textView" android:layout_marginLeft="80dip" android:layout_width="wrap_content" android:layout_height="50dip" /> <CheckBox android:id="@+id/checkbox" android:layout_marginLeft="90dip" android:layout_width="wrap_content" android:layout_height="50dip" android:clickable="false" android:focusable="false" android:focusableInTouchMode="false" /> </LinearLayout>
ListViewAdapter如下:
import java.util.List; import java.util.Map; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.CheckBox; import android.widget.SimpleAdapter; import android.widget.TextView; public class ListViewAdapter extends SimpleAdapter { private List<? extends Map<String, ?>> mArrayList; private int resource; private LayoutInflater mLayoutInflater; public ListViewAdapter(Context context,List<? extends Map<String, ?>> data, int resource, String[] from,int[] to) { super(context, data, resource, from, to); this.mArrayList=data; this.resource=resource; mLayoutInflater=(LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE); } @Override public int getCount() { if (mArrayList==null) { return 0; } else { return mArrayList.size(); } } @Override public Object getItem(int position) { if (mArrayList==null) { return null; } else { return mArrayList.get(position); } } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder=null; if(convertView==null){ viewHolder=new ViewHolder(); convertView=mLayoutInflater.inflate(resource, null); viewHolder.textView=(TextView) convertView.findViewById(R.id.textView); viewHolder.checkBox=(CheckBox) convertView.findViewById(R.id.checkbox);; convertView.setTag(viewHolder); }else { viewHolder=(ViewHolder) convertView.getTag(); } if (mArrayList!=null) { if (viewHolder.textView!=null) { viewHolder.textView.setText((String)(mArrayList.get(position).get("content"))); } if (viewHolder.checkBox!=null) { boolean isChecked=MainActivity.mCheckBoxStatusHashMap.get(position); viewHolder.checkBox.setChecked(isChecked); } } return convertView; } private class ViewHolder{ TextView textView; CheckBox checkBox; } }
每日一道理
时间好比一条小溪,它能招引我们奔向生活的海洋;时间如同一叶扁舟,它将帮助我们驶向理想的彼岸;时间犹如一支画笔,它会指点我们描绘人生的画卷。
MainActivity如下:
import java.util.ArrayList; import java.util.HashMap; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.CheckBox; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; import android.app.Activity; /** * Demo描述: * ListView的Item中含有CheckBox的处置方法 * */ public class MainActivity extends Activity { private ListView mListView; private HashMap<String, Object> mHashMap; private ArrayList<HashMap<String, Object>> mArrayList; public static HashMap<Integer, Boolean> mCheckBoxStatusHashMap=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); init(); } private void init(){ mCheckBoxStatusHashMap=new HashMap<Integer, Boolean>(); mArrayList=new ArrayList<HashMap<String,Object>>(); mListView=(ListView) findViewById(R.id.listview); addDataForListView(); mListView.setAdapter (new ListViewAdapter(MainActivity.this, mArrayList, R.layout.listviewitem, new String []{"content"}, new int []{R.id.textView})); mListView.setOnItemClickListener(new ItemClickListenerImpl()); } private void addDataForListView(){ for (int i = 0; i < 20; i++) { mHashMap=new HashMap<String, Object>(); mHashMap.put("content", ""+i); mArrayList.add(mHashMap); mCheckBoxStatusHashMap.put(i, false); } } private class ItemClickListenerImpl implements OnItemClickListener { @Override public void onItemClick(AdapterView<?> parent, View view, int position,long arg) { ListView lv = (ListView) parent; CheckBox checkBox = (CheckBox) view.findViewById(R.id.checkbox); checkBox.toggle(); boolean itemIsCheck = checkBox.isChecked(); HashMap<String, Object> itemHashMap = (HashMap<String, Object>) lv.getItemAtPosition(position); mCheckBoxStatusHashMap.put(position, itemIsCheck); } } }
文章结束给大家分享下程序员的一些笑话语录:
Borland说我很有前途,Sun笑了;Sun说我很有钱,IBM笑了;IBM说我很专业,Sybase笑了;Sybase说我数据库很牛,Oracle笑了;Oracle说我是开放的,Linux笑了;Linux说我要打败Unix,微软笑了;微软说我的系统很稳定,我们都笑了。
---------------------------------
原创文章 By
android和class
---------------------------------
相关文章推荐
- ListView的Item含有CheckBox时的处理
- ListView的Item含有CheckBox时的处理
- listview的item中含有checkbox的一些问题
- ListView中含有CheckBox或者Button等控件,导致item点击无效的原因。
- Android ListView Item含有RadioButton、CheckBox、RatingBar、EditText
- android ListView的Item中包含Button,CheckBox等可点击view的处理
- 关于ListView的item中含有checkbox,并判断选中的数目
- listView的item中含有checkbox的一些问题及解决办法
- 当ListView的item为CheckBox,EditText,Spinner的时候处理滑动数据错乱
- 关于ListView的Item含有CheckBox所遇到的一些问题
- Gridview, ListView中的item含有checkbox,setOnItemClickListener方法失效的问题
- listview的复杂item处理
- Android中ExpandableListView中含有Checkbox,Group长按事件无效,ChildItem长按事件有效
- 关于ListView中含有CheckBox,Button等控件失去焦点的解决办法
- ListView的Item中有CheckBox,导致OnItemClick不响应的解决办法
- android中点击CheckBox时无法响应ListView的Item的点击事件
- 在ListView的item项里使用CheckBox或者Button时,OnItemClickListener无响应的问题
- andorid 中带checkbox的listView问题处理
- ListView的添加不同布局的item,缓存处理方法
- listview/gridview上checkbox和button以及item获取焦点的问题