方案:我有一个ListView,当用户单击孩子时,它通过主要活动在ListView内设置TextView的值。
我有一个FloatingActionButton,它添加和减去一个对象以计算ListView中的项目数量。
要增加或减少ListView显示的子项数量,我致电notifyDataSetChanged()。
我正在尝试设置在调用后输入回TextView的文本notifyDataSetChanged()
问题: notifyDataSetChanged()完成运行后,将TextView重置为空白。
我尝试过的事情:我尝试将ListView项目中的所有值保存到单独String[] savedItems的文件中,并在TextView中设置文本。我已经在调试器中逐步运行了代码,看到代码正在保存文本并实际设置文本,但是由于某种原因,notifyDataSetChanged()它尚未完成其工作。
notifyDataSetChanged()完成后如何设置文字?
有问题的代码:
public void addNewThought(int numberOfThoughts) {
String[] savedDistortionsList = saveDistortions(); // This saves each childs text
selectedItems[numberOfThoughts] = new ArrayList<String>();
IntegerNumberOfThoughts.add(Integer.toString((numberOfThoughts++)) ); // Just the variable that counts the number of children needed in ListView
distortionsAdapter.notifyDataSetChanged(); // Refresh ListView
setBackDistortionsList(savedDistortionsList); // Put back text into ListView
}
saveDistortions()有效,所以我认为没有必要显示,但是这里是setBackDistortionsList()我测试过的代码,它实际上是在ListView中设置TextView,但是由于某种原因它没有显示。
setBackDistortionsList
private void setBackDistortionsList(String[] savedDistortionsList) {
View tempView;
TextView tempTextView;
for (int i = 0; i < savedDistortionsList.length; i++) {
tempView = LDistortions.getChildAt(i);
tempTextView = (TextView) tempView.findViewById(R.id.textEntry);
tempTextView.setText(savedDistortionsList[i]);
}
}
慕尼黑8549860
相关分类