我有一个ListView lv
,我在Listview底部有一个Button delete
(该按钮位于列表视图之外)。有一个问题,我如何处理列表视图内的按钮(如更改背景或设置按钮的文本)。我有自己的适配器,我认为我必须在public void getView(int pos, View convertView, ViewGroup parent)
功能处理按钮的变化。有谁有想法吗?
P / s:这个问题的要点是:“如何处理列表视图中的其他元素?”。
欢迎任何建议!
答案 0 :(得分:1)
假设您不只是从Activity
或Fragment
的{{1}}方法保存对Button的引用,那么在onCreate
内您需要实现一个遍历getView
链的循环,搜索您想要的实际视图。它可能看起来像这样:
ViewParent
没有编译或测试,但......这样的事情应该做你想要的。有关详细信息,请参阅ViewParent.getParent()
文档。
答案 1 :(得分:1)
在活动中,
Button delete = (Button) findViewById(R.id.delete);
CustomAdapter adapter = new CustomAdapter(delete);//add your argumente here
现在,在适配器中,您可以为按钮设置OnClickListener。
答案 2 :(得分:0)
我猜你正在使用自定义arrayadapter。如果是这样,您可以将对按钮的引用传递给arrayadapter类。
我不确定这是否会让你编辑按钮。如果没有,您可以从Activity发送ArrayAdapter处理程序。所以在活动中创建一个这样的处理程序:
protected Handler updateButtonHandler = new Handler() {
@Override
public void handleMessage(Message msg){
//Update button
}
};
然后在arrayadapter中有一个引用和:
updateButtonHandler.sendEmptyMsg(0);