
我想创建如下所示的列表视图.
复选框| TextvIEw | TextvIEw | TextvIEw | TextvIEw | TextvIEw | TextvIEw |
所有数据都来自数据库并在textvIEw中设置.
我试过但我遇到了一些问题
>当我选择复选框并滚动列表时,它会自动取消选中.
>如果我选中第一个复选框,则自动检查第5个.
>检查所有&取消所有
请帮助我,我尝试了很多代码,但我没有成功.
提前致谢.
解决方法:
它可能会帮助你.
package com.Sample_MultipleSelection;import java.util.ArrayList;import androID.R.integer;import androID.app.Activity;import androID.app.ListActivity;import androID.content.Context;import androID.graphics.color;import androID.os.Bundle;import androID.util.Log;import androID.vIEw.LayoutInflater;import androID.vIEw.VIEw;import androID.vIEw.VIEw.OnClickListener;import androID.vIEw.VIEwGroup;import androID.Widget.AdapterVIEw;import androID.Widget.AdapterVIEw.OnItemClickListener;import androID.Widget.BaseAdapter;import androID.Widget.button;import androID.Widget.CheckBox;import androID.Widget.Compoundbutton;import androID.Widget.listadapter;import androID.Widget.ListVIEw;import androID.Widget.Toast;import androID.Widget.Compoundbutton.OnCheckedchangelistener;import androID.Widget.TextVIEw;public class Sample_MultipleSelectionActivity extends ListActivity { private Mylistadapter adapter; ArrayList<String> item_ID = new ArrayList<String>(); ArrayList<String> item_name = new ArrayList<String>(); ArrayList<String> item_balance = new ArrayList<String>(); ArrayList<String> item_email = new ArrayList<String>(); ArrayList<String> items = new ArrayList<String>(); private CheckBox chk_main; boolean flag = false; boolean[] selection; ArrayList<String> selection_val; private button btn_select; private CheckBox chk_select; VIEwHolder holder12; boolean select_all; @OverrIDe public voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.main); item_ID.add("1"); item_name.add("China"); item_balance.add("4000"); item_email.add("china@gmail.com"); item_ID.add("2"); item_name.add("abc"); item_balance.add("4000"); item_email.add("abca@gmail.com"); item_ID.add("3"); item_name.add("xyz"); item_balance.add("4000"); item_email.add("xyz@gmail.com"); item_ID.add("4"); item_name.add("xyza"); item_balance.add("40070"); item_email.add("xyze@gmail.com"); item_ID.add("5"); item_name.add("xyzc"); item_balance.add("1000"); item_email.add("xyz123@gmail.com"); final VIEwHolder holder = new VIEwHolder(); selection = new boolean[item_ID.size()]; selection_val = new ArrayList<String>(); adapter = new Mylistadapter(this); setlistadapter(adapter); holder12 = new VIEwHolder(); btn_select = (button) findVIEwByID(R.ID.button1); btn_select.setonClickListener(new OnClickListener() { public voID onClick(VIEw v) { int len = selection.length; int cnt = 0; String selectIDs = ""; for (int i = 0; i < len; i++) { if (selection[i]) { cnt++; } } for (int i = 0; i < selection_val.size(); i++) { selectIDs = selectIDs + " | " + selection_val.get(i); } if (cnt == 0) { Toast.makeText(getApplicationContext(), "NO Selection", 1) .show(); } else { Toast.makeText( getApplicationContext(), "Your are Selected " + cnt + " IDs. " + " " + selectIDs, 1).show(); } } }); } public class Mylistadapter extends BaseAdapter { Context con; private LayoutInflater layoutinf; ArrayList<Boolean> itemChecked = new ArrayList<Boolean>(); ArrayList<String> items_ = new ArrayList<String>(); public Mylistadapter( Sample_MultipleSelectionActivity sample_MultipleSelectionActivity) { con = sample_MultipleSelectionActivity; } public int getCount() { return item_ID.size(); } public Object getItem(int arg0) { return item_ID.size(); } public long getItemID(int arg0) { return item_ID.get(arg0).hashCode(); } public VIEw getVIEw(final int arg0, VIEw arg1, VIEwGroup arg2) { VIEw v = arg1; VIEwHolder holder = null; if (v == null) { layoutinf = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); v = layoutinf.inflate(R.layout.row, null); holder = new VIEwHolder(); holder.chk = (CheckBox) v.findVIEwByID(R.ID.checkBox1); holder.tv_name = (TextVIEw) v.findVIEwByID(R.ID.textVIEw1); holder.tv_bal = (TextVIEw) v.findVIEwByID(R.ID.textVIEw2); holder.tv_email = (TextVIEw) v.findVIEwByID(R.ID.textVIEw3); v.setTag(holder); } else { holder = (VIEwHolder) v.getTag(); } holder.chk.setID(arg0); holder.tv_name.setID(arg0); holder.chk.setonClickListener(new OnClickListener() { public voID onClick(VIEw v) { try { CheckBox cb = (CheckBox) v; int ID = cb.getID(); String val = cb.getText().toString(); if (selection[ID]) { cb.setChecked(false); selection[ID] = false; selection_val.remove("" + val); } else { cb.setChecked(true); selection[ID] = true; selection_val.add("" + val); } adapter.notifyDataSetChanged(); } catch (Exception e) { Log.e("error", "" + e.toString()); } } }); holder.chk.setChecked(selection[arg0]); if(selection[arg0] == true) { holder.tv_name.setBackgroundcolor(color.GRAY); holder.tv_bal.setBackgroundcolor(color.GRAY); holder.tv_email.setBackgroundcolor(color.GRAY); } else { holder.tv_name.setBackgroundcolor(color.transparent); holder.tv_bal.setBackgroundcolor(color.transparent); holder.tv_email.setBackgroundcolor(color.transparent); } holder.chk.setText(item_ID.get(arg0)); holder.tv_name.setText("" + item_name.get(arg0)); holder.tv_bal.setText(item_balance.get(arg0)); holder.tv_email.setText(item_email.get(arg0)); return v; } } public class VIEwHolder { private CheckBox chk; private TextVIEw tv_name; private TextVIEw tv_bal; private TextVIEw tv_email; }}main.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="fill_parent" androID:orIEntation="vertical" > <linearLayout androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:orIEntation="horizontal" > <CheckBox androID:ID="@+ID/chk_main" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:focusable="false" androID:text="" /> <TextVIEw androID:ID="@+ID/textVIEw1" androID:layout_wIDth="100dp" androID:layout_height="wrap_content" androID:padding="5dp" androID:text="name" androID:textAppearance="?androID:attr/textAppearanceMedium" androID:textcolor="#66cc33" /> <TextVIEw androID:ID="@+ID/textVIEw2" androID:layout_wIDth="100dp" androID:layout_height="wrap_content" androID:padding="5dp" androID:text="Balance" androID:textAppearance="?androID:attr/textAppearanceMedium" androID:textcolor="#66cc33" /> <TextVIEw androID:ID="@+ID/textVIEw3" androID:layout_wIDth="100dp" androID:layout_height="wrap_content" androID:padding="5dp" androID:text="Email-ID" androID:textAppearance="?androID:attr/textAppearanceMedium" androID:textcolor="#66cc33" /> </linearLayout> <VIEw androID:ID="@+ID/vIEw1" androID:layout_wIDth="wrap_content" androID:layout_height="2dp" androID:background="#fff" /> <ListVIEw androID:ID="@androID:ID/List" androID:layout_wIDth="match_parent" androID:layout_height="314dp" androID:layout_weight="1" > </ListVIEw> <button androID:ID="@+ID/button1" androID:focusable="false" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:text="select" /> </linearLayout>row.xml
<linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent" androID:orIEntation="horizontal"> <CheckBox androID:ID="@+ID/checkBox1" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:textcolor="#000" /> <TextVIEw androID:ID="@+ID/textVIEw1" androID:layout_wIDth="100dp" androID:layout_height="wrap_content" androID:padding="3dp" androID:textAppearance="?androID:attr/textAppearanceMedium" /> <TextVIEw androID:padding="3dp" androID:ID="@+ID/textVIEw2" androID:layout_wIDth="100dp" androID:layout_height="wrap_content" androID:textAppearance="?androID:attr/textAppearanceMedium" /> <TextVIEw androID:padding="3dp" androID:ID="@+ID/textVIEw3" androID:layout_wIDth="100dp" androID:layout_height="wrap_content" androID:textAppearance="?androID:attr/textAppearanceMedium" /> </linearLayout>如果它是正确的,那就做对了.
总结以上是内存溢出为你收集整理的android多选ListView和Textview全部内容,希望文章能够帮你解决android多选ListView和Textview所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)