求解如何获取listview中的item

求解如何获取listview中的item,第1张

比如 你的 adapter中传入的数据是 List strs 那么你搜索的时候 可以搜到 所有 strs中的String ,那么 对应的list index就知道了。一般显示的时候 就是 根据position 来排的,也就是 你list中的index是多少那么在排在view中也是第index个。 查看原帖>>

使用方法:

private List<Map<String, Object>> mCheckItemList = new ArrayList<Map<String, Object>>();

mAdapter = new ListEditorAdapter(this, mCheckItemList);

m_lvListViewsetAdapter(mAdapter);

直接改变mCheckItemList中的数据,然后调用mAdapternotifyDataSetChanged();就可以更新ListView的数据

当然,直接从mCheckItemList也可以获得用户在EditText中输入的数据比较方便

其他:

ListView list= (ListView)findViewById(Ridlist);//获得listview

for (int i = 0; i < listgetChildCount(); i++) {

LinearLayout layout = (LinearLayout)listgetChildAt(i);// 获得子item的layout

EditText et = (EditText) layoutfindViewById(Ridet);// 从layout中获得控件,根据其id

// EditText et = (EditText) layoutgetChildAt(1)//或者根据位置,在这我假设TextView在前,EditText在后

Systemoutprintln("the text of "+i+"'s EditText:----------->"+etgetText());

}

public void onItemClick(AdapterView<> parent, View view, int position, long id) { Systemoutprintln("当前值:"+position); Map<String, String> temp = mapget(position); //temp是该选项的内容 }

首先写个ListView 的数据适配器,抽离出来,写一个对象,用来设置listView 每条Item 的 的对象,可以采用ConvertView 设置setTag 将View 房子tag中,可以通过ListvIEW getChildAt()getTag 取得你想要的对象,设置参数,还是铁代码吧!

getView:

ItemObj viewHolder = null;

if(convertView == null){

viewHolder = new ItemObj();

convertView = mLayoutInflateinflate(Rlayoutsimple_item, null);

viewHoldermSimpleCardName = (TextView) convertViewfindViewById(Ridsimple_name);

viewHoldermIsReTake = (TextView) convertViewfindViewById(Ridsimple_num);

viewHoldermContentNext = (TextView)convertViewfindViewById(Ridstatus);

viewHoldermIsNext = (TextView) convertViewfindViewById(Ridicon_next);

convertViewsetTag(viewHolder);

}else{

viewHolder = (ItemObj) convertViewgetTag();

}

PhotoList aPotoLists = (PhotoList) getItem(position);

if(aPotoLists!= null){

viewHoldermSimpleCardNamesetText(aPotoListsphotoName);

if(KeyInMapITFTAKESIMPLE_PIC_TEP!= null){

viewHoldermIsReTakesetText("("+0+")");

if(KeyInMapITFTAKESIMPLE_PIC_TEPequals(aPotoListsphotoName)){

ArrayList<PhotoList> aLists= (ArrayList<PhotoList>) GlobalParameterget(KeyInMapITFTAKESIMPLE_PIC_TEP);

viewHoldermIsReTakesetText("("+aListssize()+")");

}

}

if(aPotoListsstatusequals("0")){

viewHoldermContentNextsetText("未审核");

viewHoldermIsNextsetBackgroundDrawable(mContextgetResources()getDrawable(Rdrawabletask_list_arrows));

}else{

viewHoldermContentNextsetText("已审核");

viewHoldermIsNextsetText("");

convertViewsetOnClickListener(null);

}

}

obj 对象:

public class ItemObj extends Object{

public TextView mSimpleCardName;// 单证的名称

public TextView mIsReTake;// 0 是 单证拍照 1是重拍照片

public TextView mContentNext;// 未提交 未审核等

public TextView mIsNext;// 箭头

public TextView getmSimpleCardName() {

return mSimpleCardName;

}

public void setmSimpleCardName(TextView mSimpleCardName) {

thismSimpleCardName = mSimpleCardName;

}

public TextView getmIsReTake() {

return mIsReTake;

}

public void setmIsReTake(TextView mIsReTake) {

thismIsReTake = mIsReTake;

}

public TextView getmContentNext() {

return mContentNext;

}

public void setmContentNext(TextView mContentNext) {

thismContentNext = mContentNext;

}

public TextView getmIsNext() {

return mIsNext;

}

public void setmIsNext(TextView mIsNext) {

thismIsNext = mIsNext;

}

getChildAt(position)获取的是当前界面可见的View里的子View,但是ListView可能会有一部分是隐藏的,不能全部显示。能不能再Adapter里定义一个获取子View的方法在外部调用?

我很奇怪你为什么要这么做,这样的做法是不可取的。报错的原因是在Activity的onCreate方法里,listview是还没有子View的,listgetChildAt()得到的自然是null,你再对其 *** 作当然要报空指针异常。还有在listview有Header的时候,getChildAt(0)得到的是会是Header,需要注意一下。

以上就是关于求解如何获取listview中的item全部的内容,包括:求解如何获取listview中的item、如何获取ListView里Item中的控件、android listview如何点击按钮获取所有item的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存