android-如何获取复选框在列表视图中的位置

android-如何获取复选框在列表视图中的位置,第1张

概述如何获取列表视图中复选框的ID或位置?当isChecked=true或false时,我需要更新数据库,但是我需要位置…也许我可以做与OnItemClick方法相同的事情?@OverridepublicvoidonItemClick(AdapterView<?>parent,ViewitemClicked,intposition,longid){CheckBoxcbx=(Ch

如何获取列表视图中复选框的ID或位置?
当isChecked = true或false时,我需要更新数据库,但是我需要位置…
也许我可以做与OnItemClick方法相同的事情?

@OverrIDepublic voID onItemClick(AdapterVIEw<?> parent, VIEw itemClicked, int position, long ID){    CheckBox cbx = (CheckBox)itemClicked.findVIEwByID(R.ID.cbxList);    cbx.setonCheckedchangelistener(new OnCheckedchangelistener() {        @OverrIDe        public voID onCheckedChanged(Compoundbutton buttonVIEw, boolean isChecked) {        }    });    if(cbx.getVisibility() == VIEw.VISIBLE){        ContentValues cv = new ContentValues();        if(cbx.isChecked()){            cbx.setChecked(false);            int cbxID = 0;            cv.put(DB.CBX, cbxID);            mDB.updateCbx(cv, ID);            Log.d(LOG, " updated with ID = " + ID + " and cbxID is " + cbxID);        }else{            cbx.setChecked(true);            int cbxID = 1;            cv.put(DB.CBX, cbxID);            mDB.updateCbx(cv, ID);            Log.d(LOG, " updated with ID = " + ID + " and cbxID is " + cbxID);        }    }else{        Intent intentContactVIEw = new Intent(this, ContactVIEw.class);        intentContactVIEw.putExtra("ID", ID);        startActivity(intentContactVIEw);    }       }   

使用SimpleCursorAdapter从类获取方法getVIEw()…同样的问题,如何获取所选复选框的位置或ID?

@OverrIDepublic VIEw getVIEw(int position, VIEw convertVIEw, VIEwGroup parent) {    if (convertVIEw == null) {        convertVIEw = mLayoutInflater.inflate(R.layout.item, parent, false);        vIEw = super.getVIEw(position, convertVIEw, parent);        CheckBox cbx = (CheckBox)convertVIEw.findVIEwByID(R.ID.cbxList);    }    return vIEw;}

和我的带有ListvIEw项的Xml文件.这里所说的复选框是不可见的,但是当我调用它们时它们才出现(只是为了理解.)

<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:layout_wIDth="match_parent"    androID:layout_height="wrap_content"    androID:layout_margin="@dimen/margin"    androID:orIEntation="horizontal" >    <linearLayout        androID:layout_wIDth="0dp"        androID:layout_height="wrap_content"        androID:layout_margin="@dimen/margin"        androID:layout_weight="0.5"        androID:orIEntation="horizontal" >        <linearLayout            androID:layout_wIDth="wrap_content"            androID:layout_height="wrap_content"            androID:layout_margin="@dimen/margin"            androID:orIEntation="vertical" >            <ImageVIEw                androID:ID="@+ID/ivPhoto"                androID:layout_wIDth="@dimen/imageWIDth"                androID:layout_height="@dimen/imageHeight"                androID:layout_gravity="center_vertical"                androID:contentDescription="@string/photoDescription"                androID:src="@drawable/default_contact" />        </linearLayout>        <TextVIEw            androID:ID="@+ID/tvname"            androID:layout_wIDth="wrap_content"            androID:layout_height="wrap_content"            androID:layout_gravity="center_vertical"            androID:layout_marginleft="@dimen/margin"            androID:text=""            androID:textSize="@dimen/textSize" />        <TextVIEw            androID:ID="@+ID/tvSurname"            androID:layout_wIDth="wrap_content"            androID:layout_height="wrap_content"            androID:layout_gravity="center_vertical"            androID:layout_marginleft="@dimen/margin"            androID:text=""            androID:textSize="@dimen/textSize" />    </linearLayout>    <CheckBox        androID:ID="@+ID/cbxList"        androID:layout_wIDth="0dp"        androID:layout_height="wrap_content"        androID:layout_gravity="center"        androID:layout_marginleft="@dimen/margin"        androID:layout_weight="0.2"        androID:focusable="false"        androID:visibility="invisible" /></linearLayout>

解决方法:

您可以将标签设置为复选框,并在获得事件的回调时,可以从回调中提供的视图中提取标签.设置标签中的位置(setTag()是设置标签的方法).
因此,您的内容应类似于以下内容:

public VIEw getVIEw(int position, VIEw convertVIEw, VIEwGroup parent){    //...    CheckBox cbx;    //...    cbx.setTag(position);    cbx.setonCheckedchangelistener(checkListener);    //...}OnCheckedchangelistener checkListener = new OnCheckedchangelistener(){    @OverrIDe    public voID onCheckedChanged(Compoundbutton buttonVIEw, boolean isChecked)    {        int position = buttonVIEw.getTag();    }};
总结

以上是内存溢出为你收集整理的android-如何获取复选框在列表视图中的位置全部内容,希望文章能够帮你解决android-如何获取复选框在列表视图中的位置所遇到的程序开发问题。

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

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

原文地址: http://outofmemory.cn/web/1088461.html

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

发表评论

登录后才能评论

评论列表(0条)

保存