在Android中的ListView中更改Button的文本

时间:2012-11-10 19:49:31

标签: android listview button text

我使用自定义ArrayAdapter设置了自定义ListView。 一排由10个按钮组成。单击按钮后,我无法更改按钮标题。在getView方法中,我正在为我的所有按钮设置一个持有者。 点击监听器在主要活动中,它正常工作(我想是这样),我能够得到按钮的参考:

MyHolder h = (MyHolder) getListView().getAdapter().getView(position, null, null).getTag();

Button b = h.myButton;

现在当我调用b.getText()时,它会给我单击按钮的文本。 但是当我尝试:b.setText(“xxx”);按钮的文字没有改变。

任何想法?

1 个答案:

答案 0 :(得分:3)

我不认为调用:getListView().getAdapter().getView(position, null, null)手动实际返回position处的现有视图。这只会创建一个具有相同数据的 new 视图,这就是您没有看到任何更改并且不会收到任何错误的原因。

只需使用Button的OnClickListener中传递的View来更改自己的文本。

public void onClick(View v) {
    Button b = (Button) v;
    b.setText(...);
}