【发布时间】:2015-07-05 16:36:19
【问题描述】:
我有一个 ListView 有项目(每个都有 Button 编辑和 TextView 显示标题)。我已经实现了自定义适配器来显示这种结构。
单击编辑按钮时,我会显示一个带有EditText 和确定按钮的对话框。用户可以在EditText 中输入所需的名称,并且该文本应更改ListView 中的标题。
我的代码示例是,
mListViewItemsAccCat.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
final TextView textviewTitle = (TextView)view.findViewById(R.id.textTitle);
Button objButtonEdit = (Button) view.findViewById(R.id.btnEdit);
objButtonEdit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// here displaying dialog and imageButton is OK button
final EditText editTextTitle = (EditText) dialogEdit.findViewById(R.id.etTitle);
ImageButton imageButtonOK = (ImageButton) dialogEdit.findViewById(R.id.btnOK);
imageButtonOK.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String strNewTitle = editTextTitle.getText().toString().trim();
textviewTitle.setText(strNewTitle);
}
});
}
});
});
此处ListView 项目的文本应更改为strNewTitle。但它没有改变。我哪里错了?
更新:我检查了调试。 TextView 的文本正在内部更改,但未显示。 (TextView 的 mText 具有新值,但在 UI 中仍显示旧值。
【问题讨论】:
-
可能是最终声明.. 尝试在外部将其定义为没有最终声明的全局变量.. private TextView textviewTitle;然后在您的 OnClicklistener 中: textviewTitle = (TextView)view.findViewById(R.id.textTitle);
-
@Wicked161089:不工作。
-
您是否尝试过如下所述在 OnClick 方法中的 setText() 之后调用 Adapter.notifyDataSetChanged()?
-
执行此操作:您将拥有字符串数组,编辑项目后,更改数组中的项目文本,然后使用 notifyDataSetChanged()。
标签: android android-listview textview