从android中的对话框更改TextView文本
Posted
技术标签:
【中文标题】从android中的对话框更改TextView文本【英文标题】:Changing TextView text from dialog in android 【发布时间】: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()。 【参考方案1】:您是否在您的adapter.getView 函数中使用了convertView?您的 getView 函数中的代码是什么?在你的imageButtonOK的onClickListener中,不要直接改变TextView的内容,你应该改变你模型中的数据,然后调用adapter.notifyDataChanged()函数。
【讨论】:
以上是关于从android中的对话框更改TextView文本的主要内容,如果未能解决你的问题,请参考以下文章
Android TextView中的下划线和更改文本颜色[重复]
可以从对话框textview获取文本,但无法从对话框edittext获取文本
从ArrayAdapter每毫秒更新Android ListView中的一行
Android IME:显示一个自定义弹出对话框(如 Swype 键盘),可以在 TextView 中输入文本