我有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
的内容正在内部更改,但未显示。 (mText
的{{1}}包含新值,但在用户界面中,它仍显示旧值。
答案 0 :(得分:0)
您是否在adapter.getView函数中使用了convertView?你的getView函数中的代码是什么?在imageButtonOK的onClickListener中,您应该更改模型中的数据,然后调用adapter.notifyDataChanged()函数,而不是直接更改TextView的内容。