Android 如何在ListView适配器中获取list\u view\u item.xml的根视图?
我有一个ListView项目/单元,它有几个层,相对层,线性层等等。 我试着在点击按钮的内部执行v.getParent(),但它只上升了一层。如何在onClick事件处理程序中获取对当前元素根的引用 这是我的getView()Android 如何在ListView适配器中获取list\u view\u item.xml的根视图?,android,android-layout,Android,Android Layout,我有一个ListView项目/单元,它有几个层,相对层,线性层等等。 我试着在点击按钮的内部执行v.getParent(),但它只上升了一层。如何在onClick事件处理程序中获取对当前元素根的引用 这是我的getView() 我想象这个按钮在ListView元素中。基于这一假设: 只创建一个OnClick侦听器。您这样做的方式是创建adapter.getCount()OnClick listener并疯狂地浪费内存 也许您想完全删除按钮并使用OnItemClick跟踪整个ListView元素上
我想象这个按钮在ListView元素中。基于这一假设:
adapter.getCount()
OnClick listener并疯狂地浪费内存@Override
public View getView(int position, View convertView, ViewGroup parent) {
// do whatever you're doing to get the view, let's call it v
Button b = (Button)v.findViewById(/* your button id */ )
b.setTag(v)
}
onClic(View v){
View parent = (View)b.getTag();
}
如果这个答案对你有效(我知道是的),请接受丹尼尔·马丁内斯指出的正确答案。这是一个很好的答案!我可能会发布一个自己的答案来回答这个问题,所以时间不多了…无论如何,谢谢丹尼尔!下次你问问题的时候,我相信每个人都会回答!成功了!我现在感觉好多了!是的,但我认为v.getRootView()会一直走到顶端。然后使用该视图来查找它。但是如果它是一个适配器,它是从XML扩展而来的,并且所有视图都具有相同的ID,那么如何查找它呢?我会告诉你怎么做,用我刚刚发布的答案。在b.setTag(v)上,你应该发布b.setTag(convertView)等等。注意语法!仔细观察,我认为你是对的。有必要跟踪特定的关联视图。代码注释清楚地说明了
//无论你做什么都可以获得视图,让我们称之为v
,我告诉你我称之为v
,你必须适应你正在使用的任何东西。没有这样的方法v.getViewParent()
。
Inside onClick(View v)
just call v.getViewParent(); then you will have a view from which you can call the find for the others.
Inside onClick(View v)
just call v.getViewParent(); then you will have a view from which you can call the find for the others.