如何在ListView中动态listview添加checkboxx-CSDN论坛

1476人阅读
学习笔记(14)

动态添加示例一:
public class MainActivity extends Activity {
&@Override
&public void onCreate(Bundle savedInstanceState) {
&&super.onCreate(savedInstanceState);
&&final LinearLayout layout2 = new LinearLayout(this);
&&layout2.setOrientation(LinearLayout.VERTICAL);
&&Button btn1 = new Button(this);
&&Button btn2 = new Button(this);
&&btn1.setText(&Button1&);
&&btn2.setText(&Button2&);
&&layout2.addView(btn1);
&&layout2.addView(btn2);
&&setContentView(layout2);
&&btn1.setOnClickListener(new OnClickListener() {
&&&@Override
&&&public void onClick(View v) {
&&&&// TODO Auto-generated method stub
&&&&setTitle(&点击button1 &);&
&&&&&&&&&&&&& Button btn3=new Button(v.getContext());&
&&&&&&&&&&&&& layout2.addView(btn3);&
&&&&&&&&&&&&& btn3.setText(&Button3&);&
-------------------------------------------------------------------------------------------------------------------------------------
动态添加示例二:
public class MainActivity extends Activity {
&@Override
&public void onCreate(Bundle savedInstanceState) {
&&super.onCreate(savedInstanceState);
&&setContentView(R.layout.activity_main);
&&//ImageView添加到这个RelativeLayout下边&
&&&&&&& RelativeLayout rl_1 = (RelativeLayout)findViewById(R.id.rl_1);&
&&//要被添加的ImageView
&&ImageView iv_1 = new ImageView(this);&
&&iv_1.setImageResource(R.drawable.ic_launcher);&
//&&&&& iv.setId(110);//注意这点 设置id&&&&&&&&&&&&&&&&&&&&&&&&&& 特别注意的是设置id(imgApple2.setId(110);),方便在以后onclick监听事件中进行对应的处理
&&iv_1.setOnClickListener(new OnClickListener() {
&&&@Override
&&&public void onClick(View v) {
&&&&Toast.makeText(MainActivity.this, &you clicked me&, 0).show();
&&&&&&& //添加时的布局参数设置
&&&&&&& RelativeLayout.LayoutParams layoutParams_1 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);&
//&&&&&&& layoutParams_1.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);&
//&&&&&&& layoutParams_1.setMargins(30, 50, 100, 100);
&&&&&&& layoutParams_1.leftMargin=500;&
&&&&&&& layoutParams_1.topMargin = 500;&
&&&&&&& rl_1.addView(iv_1,layoutParams_1);&
&&&&& //ImageView添加到这个RelativeLayout下边&
&&&&&&& RelativeLayout rl_2 = (RelativeLayout)findViewById(R.id.rl_2);&
&&//要被添加的ImageView
&&ImageView iv_2 = new ImageView(this);&
&&iv_2.setImageResource(R.drawable.ic_launcher);&
//&&&&& iv.setId(110);//注意这点 设置id&
&&iv_2.setOnClickListener(new OnClickListener() {
&&&@Override
&&&public void onClick(View v) {
&&&&Toast.makeText(MainActivity.this, &you clicked me&, 0).show();
&&&&&&& //添加时的布局参数设置
&&&&&&& RelativeLayout.LayoutParams layoutParams_2 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);&
//&&&&&&& layoutParams_2.setMargins(30, 50, 100, 100);
&&&&&&& layoutParams_2.leftMargin=40;&
&&&&&&& layoutParams_2.topMargin = 400;&
&&&&&&& rl_2.addView(iv_2,layoutParams_2);&
--------------------------------------------------------------------------------------------------------------------------------------
动态添加示例三:
public class MainActivity extends Activity {
& /** Called when the activity is first created. */
& @Override
& public void onCreate(Bundle savedInstanceState) {
&&& super.onCreate(savedInstanceState);
&&& //设置布局
&&& setContentView(R.layout.activity_main);
&&& //自定义的带提示文本的EditText组件
&&& EditText ed = new EditText(this);
&&& ed.setHint(&请输入。。。。。。。。&);
&&& //设置从左边140px处开始输入文本
&&& ed.setPadding(140, 0, 0, 0);
&&& //向如下relativeLayout这个布局中动态添加一个EditText
&&& RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.rl_2);
&&& //创建一个LayoutParams对象
&&& RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
&&&&& ViewGroup.LayoutParams.WRAP_CONTENT);
&&& //设置android:layout_below属性的值
&&& layoutParams.addRule(RelativeLayout.BELOW, R.id.et_inner);
&&& //动态添加EditText
&&& relativeLayout.addView(ed, layoutParams);
--------------------------------------------------------------------------------------------------------------------------------------
动态添加示例(综合《很好》):
public class MainActivity extends Activity {
&private static int id = 100;
&@Override
&protected void onCreate(Bundle savedInstanceState) {
&&super.onCreate(savedInstanceState);
&&setContentView(R.layout.activity_main);
&&final LinearLayout lin = (LinearLayout) findViewById(R.id.list_Lin);
&&LinearLayout.LayoutParams LP_FW = new LinearLayout.LayoutParams(
&&&&LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
&&RelativeLayout newSingleRL=new RelativeLayout(this);
&&for(int i=0;i&10;)
&&&newSingleRL=generateSingleLayout(id,&第&+(++i)+&个动态列表&);
&&&lin.addView(newSingleRL,LP_FW);//全部用父结点的布局参数
//&&final LinearLayout root = (LinearLayout) findViewById(R.id.layout_root); //获取总根结点
//&&setContentView(root); //这里必须是总根结点&&
& * 新建一个列表item
& * @param imageID 新建imageView的ID值
& * @param str& TextView要显示的文字
& * @return 新建的单项布局变量
&private RelativeLayout generateSingleLayout(int imageID,String str)
&&//最外层相对布局:其他(一个LinearLayout,一个ImageView)都会添加在此布局内部。
&&RelativeLayout layout_root_relative=new RelativeLayout(this);
&&//ImageView被添加在最外层layout_root_relative的右边:params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
&& ImageView imageView = new ImageView(this);
&& //out.1
&& RelativeLayout.LayoutParams RL_WW = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
&&&&&RelativeLayout.LayoutParams.WRAP_CONTENT);
&& imageView.setPadding(5, 5, 5, 5);
&& RL_WW.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
&&&&& imageView.setLayoutParams(RL_WW);&
&&&&& imageView.setClickable(true);
&&&&& imageView.setId(imageID);
&&&&& imageView.setImageResource(R.drawable.plus);
&&&&& layout_root_relative.addView(imageView);
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&& //LinearLayout被添加在最外层layout_root_relative里边,并且在ImageView的左边:params.addRule(RelativeLayout.LEFT_OF,imageID);
&&LinearLayout layout_sub_Lin=new LinearLayout(this);
&&layout_sub_Lin.setBackgroundColor(Color.argb(0xff, 0x00, 0xff, 0x00));
&&layout_sub_Lin.setOrientation(LinearLayout.VERTICAL);
&&layout_sub_Lin.setPadding(5, 5, 5, 5);
&&//TextView是被添加在最外层layout_root_relative内部的LinearLayout里边
&&TextView tv = new TextView(this);
&&//inner.1
&&LinearLayout.LayoutParams LP_WW = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
&&&&&LinearLayout.LayoutParams.WRAP_CONTENT);
&&tv.setText(str);
&&tv.setTextColor(Color.argb(0xff, 0x00, 0x00, 0x00));
&&tv.setTextSize(20);
&&tv.setLayoutParams(LP_WW);
&&layout_sub_Lin.addView(tv);
&&RelativeLayout.LayoutParams RL_MW = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,
&&&&RelativeLayout.LayoutParams.WRAP_CONTENT);//尤其注意这个位置,用的是父容器的布局参数
&&RL_MW.setMargins(5, 5, 150, 5);
&&RL_MW.addRule(RelativeLayout.LEFT_OF,imageID);
&&layout_root_relative.addView(layout_sub_Lin,RL_MW);
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&return layout_root_
--------------------------------------------------------------------------------------------------------------------------------------
动态添加:尺码,颜色,容量,可以使用这里(很好)
public class MainActivity extends Activity {
&@Override
&public void onCreate(Bundle savedInstanceState) {
&&super.onCreate(savedInstanceState);
&&DisplayMetrics dm = new DisplayMetrics();
&&getWindowManager().getDefaultDisplay().getMetrics(dm);
&&int width = dm.widthP
&&// int height = dm.heightP
&&// 自定义layout组件
&&RelativeLayout layout = new RelativeLayout(this);
&&// 这里创建16个按钮,每行放置4个按钮
&&Button Btn[] = new Button[14];
&&int j = -1;
&&for (int i = 0; i & Btn. i++) {
&&&Btn[i] = new Button(this);
&&&Btn[i].setId(2000 + i);
&&&Btn[i].setText(&按钮& + i);
&&&RelativeLayout.LayoutParams btParams = new RelativeLayout.LayoutParams(
&&&&&(width - 50) / 4, 100); // 设置按钮的宽度和高度
&&&if (i % 4 == 0) {
&&&&j++;
&&&btParams.leftMargin = 10 + ((width - 50) / 4 + 10) * (i % 4); // 横坐标定位
&&&btParams.topMargin = 20 + 100 * // 纵坐标定位
&&&layout.addView(Btn[i], btParams); // 将按钮放入layout组件
&&this.setContentView(layout);
&&// 批量设置监听
&&for (int k = 0; k &= Btn.length - 1; k++) {
&&&// 这里不需要findId,因为创建的时候已经确定哪个按钮对应哪个Id
&&&Btn[k].setTag(k); // 为按钮设置一个标记,来确认是按下了哪一个按钮
&&&Btn[k].setOnClickListener(new Button.OnClickListener() {
&&&&@Override
&&&&public void onClick(View v) {
&&&&&int i = (Integer) v.getTag(); // 这里的i不能在外部定义,因为内部类的关系,内部类好多繁琐的东西,要好好研究一番
&&&&&Toast.makeText(MainActivity.this, &count = & + i,
&&&&&&&Toast.LENGTH_SHORT).show();
--------------------------------------------------------------------------------------------------------------------------------------
一种思路:
通过使用LayoutInflater 每次点击按钮时候去读取布局文件,然后找到布局文件里面的各个VIEW 操作完VIEW 后加载进我们setContentView 方面里面的要放的布局文件里面,
每次动态加载文件必需 调用 removeAllViews方法,清除之前的加载进来的 View 。
public class MainActivity extends Activity {
&/** Called when the activity is first created. */
&@Override
&public void onCreate(Bundle savedInstanceState) {
&&super.onCreate(savedInstanceState);
&&setContentView(R.layout.activity_main);//上边一个线性布局,里边左右各一个按钮,。下边一个线性布局,当点击上边的线性布局里边的左右按钮时,此处的内容改变。
&&final LayoutInflater inflater = LayoutInflater.from(this);
&&Button btn = (Button) findViewById(R.id.Button01);
&&Button btn2 = (Button) findViewById(R.id.Button02);
&&final LinearLayout lin = (LinearLayout) findViewById(R.id.LinearLayout01);//下边的线性布局
&&btn.setOnClickListener(new OnClickListener() {
&&&@Override
&&&public void onClick(View v) {
&&&&// TODO Auto-generated method stub
&&&&View view = View.inflate(MainActivity.this, R.layout.listview, null);&&&&&& //listview.xml里边根节点一个线性布局(感觉有点多余),线性布局里边一个listview
&&&&LinearLayout ll = (LinearLayout) view.findViewById(R.id.layout);
&&&&ListView lv = (ListView) ll.getChildAt(0);
&&&&lv.setAdapter(new listAdapter(MainActivity.this));
&&&&lin.removeAllViews();
&&&&lin.addView(ll);
//&&&&LinearLayout layout = (LinearLayout) inflater.inflate(R.layout.listview, null).findViewById(R.id.layout);
//&&&&ListView lv = (ListView) layout.getChildAt(0);
//&&&&lv.setAdapter(new listAdapter(MainActivity.this));
//&&&&lin.removeAllViews();
//&&&&lin.addView(layout);
&&btn2.setOnClickListener(new OnClickListener() {
&&&@Override
&&&public void onClick(View v) {
&&&&// TODO Auto-generated method stub
&&&&LinearLayout layout = (LinearLayout) inflater.inflate(
&&&&&&R.layout.hello, null).findViewById(R.id.hellolayout);&&&& //hello.xml里边根节点是一个线性布局(感觉有点多余),线性布局里边一个textview
&&&&TextView lv = (TextView) layout.getChildAt(0);
&&&&lv.setTextColor(Color.RED);
&&&&lin.removeAllViews();
&&&&lin.addView(layout);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:4190次
排名:千里之外
原创:10篇Android基础(50)
package com.itheima74.newscustom.
import android.graphics.drawable.D
* Created by My on .
public class NewsBean {
public String news_
package com.itheima74.newscustom.
import android.content.C
import com.itheima74.newscustom.R;
import com.itheima74.newscustom.domain.NewsB
import java.util.ArrayL
* Created by My on .
public class NewsUtils {
* @param context 上下文环境
* @return 新闻集合
public static ArrayList&NewsBean& getAllNews(Context context) {
ArrayList&NewsBean& arrayList = new ArrayList&&();
for (int i = 0; i & 5; i++) {
NewsBean newsBean1 = new NewsBean();
newsBean1.title = &鸟瞰暴雨后的武汉 全市已转移16万人次&;
newsBean1.des = &7月5-6日,武汉普降暴雨-大暴雨,中心城区、蔡甸部分地区出现特大暴雨。江夏大道汤逊湖大桥段,被湖水冲破的路障。记者贾代腾飞 陈卓摄&;
newsBean1.icon = context.getResources().getDrawable(R.drawable.wuhan);
newsBean1.news_url = &http://slide..cn/s/slide_1_.html#p=1&;
arrayList.add(newsBean1);
NewsBean newsBean2 = new NewsBean();
newsBean2.title = &安徽暴雨 三四十条鳄鱼逃至附近农田&;
newsBean2.des = &因强降雨造成内涝,安徽省芜湖市芜湖县花桥镇鳄鱼湖农庄所养鳄鱼逃跑至附近农田。。据悉,溜出来的鳄鱼为散养的扬子鳄,比较温驯。初步预计有三四十条,具体数量未统计,其中最大的约1.8米长。图为网友拍摄到的农田中的鳄鱼。&;
newsBean2.icon = context.getResources().getDrawable(R.drawable.eyu);
newsBean2.news_url = &http://slide..cn/s/slide_1_.html#p=1&;
arrayList.add(newsBean2);
NewsBean newsBean3 = new NewsBean();
newsBean3.title = &暴雨过后 南京理工大学变“奇幻森林”&;
newsBean3.des = &近日,持续强降雨,导致地势低洼的南京理工大学出现严重积水。这一组几张照片,南理工恍若童话世界中。网友:泡在水中的南理工,也可以倔强地刷出颜值新高度。&;
newsBean3.icon = context.getResources().getDrawable(R.drawable.qihuan);
newsBean3.news_url = &http://slide..cn/s/slide_1_.html#p=1&;
arrayList.add(newsBean3);
return arrayL
package com.itheima74.newscustom.
import android.content.I
import android.net.U
import android.os.B
import android.support.v7.app.AppCompatA
import android.view.V
import android.view.ViewG
import android.widget.AdapterV
import android.widget.BaseA
import android.widget.ImageV
import android.widget.ListV
import android.widget.TextV
import com.itheima74.newscustom.R;
import com.itheima74.newscustom.domain.NewsB
import com.itheima74.newscustom.utils.NewsU
import java.util.ArrayL
* 1.封装一些新闻数据
* 2.使用listview展示出来
* 3.设置条目点击事件,点击后跳转浏览器查看新闻
public class MainActivity extends AppCompatActivity {
private ListV
private ArrayList&NewsBean& mL
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initData();
initAdapter();
private void initAdapter() {
lv.setAdapter(new NewsAdapter());
private void initData() {
mList = NewsUtils.getAllNews(this);
private void initUI() {
lv = (ListView) findViewById(R.id.lv);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView&?& parent, View view, int position, long id) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse(mList.get(position).news_url));
startActivity(intent);
private class NewsAdapter extends BaseAdapter {
public int getCount() {
return mList.size();
public NewsBean getItem(int position) {
return mList.get(position);
public long getItemId(int position) {
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
holder = new ViewHolder();
convertView = View.inflate(getApplicationContext(), R.layout.listview_item, null);
holder.tv_title = (TextView) convertView.findViewById(R.id.tv_title);
holder.tv_des = (TextView) convertView.findViewById(R.id.tv_des);
holder.iv_icon = (ImageView) convertView.findViewById(R.id.iv_icon);
convertView.setTag(holder);
holder = (ViewHolder) convertView.getTag();
NewsBean item = getItem(position);
holder.tv_title.setText(item.title);
holder.tv_des.setText(item.des);
holder.iv_icon.setImageDrawable(item.icon);
return convertV
private static class ViewHolder {
TextView tv_
TextView tv_
ImageView iv_
listview_item:
&?xml version=&1.0& encoding=&utf-8&?&
&LinearLayout xmlns:android=&/apk/res/android&
android:layout_width=&match_parent&
android:layout_height=&wrap_content&
android:gravity=&center&
android:orientation=&horizontal&
android:padding=&10dp&&
&ImageView
android:id=&@+id/iv_icon&
android:layout_width=&100dp&
android:layout_height=&80dp&
android:layout_marginEnd=&10dp&
android:layout_marginRight=&10dp&
android:src=&@mipmap/ic_launcher& /&
&LinearLayout
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:orientation=&vertical&&
android:id=&@+id/tv_title&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:layout_marginBottom=&3dp&
android:maxLines=&1&
android:text=&新闻标题&
android:textColor=&#000000&
android:textSize=&16sp& /&
android:id=&@+id/tv_des&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:maxLines=&2&
android:text=&新闻内容&
android:textColor=&#666666&
android:textSize=&13sp& /&
&/LinearLayout&
&/LinearLayout&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1677次
排名:千里之外
原创:54篇2243人阅读
小工具(3)
发现一个listview和checkbox混乱的bug,现已解决,见博客
当然这一篇主要是在说addview,也是可以看看。
微信大家都用过,微信里添加群聊时点击好友可以将头像动态显示到搜索栏中,最近项目中做了个模仿这个的,不知道微信用的是什么,我使用的是addView。先看效果图。
实现比较简单,就是个listview,里面加了checkbox。下面是代码
public class MainActivity extends ActionBarActivity {
private LinearLayout menuLinerL
private ListView listV
private List&User& allUserL
private EditText editT
private TextView tv_
private ImageView iv_
private ListA
private List&String& addList = new ArrayList&String&();
private int total = 0;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initData();
private void initData() {
final User angelbaby = new User("angelbaby",R.mipmap.a1);
User tangyan = new User("唐嫣",R.mipmap.a2);
User zhaoliying = new User("赵丽颖",R.mipmap.a3);
User gaoyuanyuan = new User("高圆圆",R.mipmap.a4);
User cat = new User("一只猫",R.mipmap.a5);
allUserList = new ArrayList&User&();
allUserList.add(angelbaby);
allUserList.add(tangyan);
allUserList.add(zhaoliying);
allUserList.add(gaoyuanyuan);
allUserList.add(cat);
adapter = new ListAdapter(MainActivity.this,allUserList);
listView.setAdapter(adapter);
editText.addTextChangedListener(new TextWatcher() {
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (s.length() & 0) {
String str_s = editText.getText().toString().trim();
List&User& user_temp = new ArrayList&User&();
for (User user : allUserList) {
String uesrname = user.getName();
if (uesrname.contains(str_s)) {
user_temp.add(user);
adapter = new ListAdapter(MainActivity.this, user_temp);
listView.setAdapter(adapter);
adapter = new ListAdapter(MainActivity.this, allUserList);
listView.setAdapter(adapter);
public void afterTextChanged(Editable s) {
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(final AdapterView&?& parent, View view,
final int position, long id) {
final CheckBox checkBox = (CheckBox) view.findViewById(R.id.checkbox);
checkBox.toggle();
private void initView() {
listView = (ListView) findViewById(R.id.list);
menuLinerLayout = (LinearLayout) findViewById(R.id.linearLayoutMenu);
editText = (EditText) findViewById(R.id.et_search);
tv_checked = (TextView) findViewById(R.id.tv_checked);
iv_search = (ImageView) findViewById(R.id.iv_search);
private void showCheckImage(Bitmap bitmap, User glufineid) {
android.widget.LinearLayout.LayoutParams menuLinerLayoutParames = new LinearLayout.LayoutParams(
75, 75, 1);
View view = LayoutInflater.from(this).inflate(
R.layout.header_item, null);
ImageView images = (ImageView) view.findViewById(R.id.iv_avatar);
menuLinerLayoutParames.setMargins(6, 6, 6, 6);
view.setTag(glufineid);
if (bitmap == null) {
images.setImageResource(R.mipmap.default_useravatar);
images.setImageBitmap(bitmap);
menuLinerLayout.addView(view, menuLinerLayoutParames);
tv_checked.setText("确定(" + total + ")");
if (total & 0) {
if (iv_search.getVisibility() == View.VISIBLE) {
iv_search.setVisibility(View.GONE);
addList.add(glufineid.getName());
private void deleteImage(User glufineid) {
View view = (View) menuLinerLayout.findViewWithTag(glufineid);
menuLinerLayout.removeView(view);
tv_checked.setText("确定(" + total + ")");
addList.remove(glufineid.getName());
if (total & 1) {
if (iv_search.getVisibility() == View.GONE) {
iv_search.setVisibility(View.VISIBLE);
private class ListAdapter extends BaseAdapter {
private LayoutInflater layoutI
private List&User& list = new ArrayList&User&();
public ListAdapter(Context context,List&User& list){
this.context =
this.list =
public int getCount() {
return this.list.size();
public User getItem(int position) {
return list.get(position);
public long getItemId(int position) {
public View getView(final int position, View convertView, ViewGroup parent) {
User user = getItem(position);
ViewHolder viewHolder = null;
if (convertView == null) {
viewHolder = new ViewHolder();
convertView = LayoutInflater.from(context).inflate(R.layout.listitem,null);
viewHolder.imageView = (ImageView) convertView.findViewById(R.id.imageview);
viewHolder.textView = (TextView) convertView.findViewById(R.id.textview);
final CheckBox checkBox = (CheckBox) convertView.findViewById(R.id.checkbox);
final ImageView imageView = (ImageView) convertView.findViewById(R.id.imageview);
if (addList != null && addList.contains(user.getName())) {
checkBox.setChecked(true);
if (checkBox != null){
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
Bitmap bitmap = null;
bitmap = ((BitmapDrawable) imageView.getDrawable()).getBitmap();
showCheckImage(bitmap, list.get(position));
deleteImage(list.get(position));
convertView.setTag(viewHolder);
viewHolder = (ViewHolder) convertView.getTag();
viewHolder.imageView.setImageResource(user.getHeader());
viewHolder.textView.setText(user.getName());
return convertV
class ViewHolder {
ImageView imageV
TextView textV
public class User {
private int
public User(String name, int header) {
this.name =
this.header =
public String getName() {
public int getHeader() {
代码比较简单,我都有注释,大家勉强看看吧。
源码下载:
转载请注明出处:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:6953次
排名:千里之外
评论:28条
(1)(2)(1)(4)

我要回帖

更多关于 带checkbox的listview 的文章

 

随机推荐