当前位置: 代码迷 >> Android >> ListView中子项内如何访问
  详细解决方案

ListView中子项内如何访问

热度:70   发布时间:2016-05-01 21:01:13.0
ListView中子项内怎么访问?
我的ListView里面使用Xml来做子项

子项里面有一个Button和一个TextView

是自定义一个DetailAdapter,在这个里面通过mInflater.inflate(xml文件)绑定

在这里的getView()里定义的Button的Click方法,我想在这个事件去修改TextView的值,怎么做?


在网上找了很久,还是没有找到合适的办法,希望各位大哥帮帮忙!!!谢谢



------解决方案--------------------
set属性?
------解决方案--------------------
(TextView) listview.getChildAt(i).findViewById(
R.id.TextViewScore);

这个应该可以吧
------解决方案--------------------
这里有个挺好的总结,当时我弄ListView+Button的时候就在这儿学习的。
http://www.cnblogs.com/allin/archive/2010/05/11/1732200.html
------解决方案--------------------
自定义的DetailAdapter里面
Java code
@Override    public View getView(int position, View convertView, ViewGroup parent) {        // TODO Auto-generated method stub         final ViewHolder holder = null;                    if (convertView == null) {               holder=new ViewHolder();                 convertView = mInflater.inflate(inflateID, null);               holder.table = (Button)convertView.findViewById(R.id.tableLayout1);               holder.title = (TextView)convertView.findViewById(R.id.textView_title);               convertView.setTag(holder);           }else{               holder = (ViewHolder)convertView.getTag();           }         holder.table.setOnClickListener(new OnClickListener(){                @Override                public void onClick(View v) {                    // TODO Auto-generated method stub                    holder.title.setText("Title Text");                }             });                  return convertView;     }        private final class ViewHolder{          public Button table;        public TextView title;    }
------解决方案--------------------
这个问题很深奥啊
------解决方案--------------------
探讨
8楼的兄弟
我的是你这种情况

但是,你把 final ViewHolder holder = null; 修改为final后,还可以修改?

你这个能编译通过吗?

------解决方案--------------------
把TextView 设成Button 的tag,
或者
 public void onClick(View v) 
{
TextView textView = (TextView) v.getParent().findViewById(R.id.textview)
textView.setText("Test");
}
 Button
------解决方案--------------------
探讨

额。。这样呀。。

我刚刚试了一下,可以改!但是改的不是当前那个Item的TextView的值。

是最后一个子项的值。

比如我一个ListView有100个子项,能显示出来的有10个,我点第一个item中的Button,却修改了第十个TextView的值。。。

------解决方案--------------------
在getView里做相应处理就行了。
------解决方案--------------------
http://blog.csdn.net/aomandeshangxiao/article/details/6643831 看一下我的这个博客吧 对你应该有用。看明白 你的问题应该能够解决了。
------解决方案--------------------
帮顶 .
  相关解决方案