android多选ListView和Textview

android多选ListView和Textview,第1张

概述我想创建如下所示的列表视图.复选框|Textview|Textview|Textview|Textview|Textview|Textview|所有数据都来自数据库并在textview中设置.我试过但我遇到了一些问题>当我选择复选框并滚动列表时,它会自动取消选中.>如果我选中第一个复选框,则自动检查第5个.>检查所

我想创建如下所示的列表视图.

复选框| 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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1103392.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存