【发布时间】:2011-05-19 20:38:55
【问题描述】:
在我的活动中有一个包含文本文件行的列表视图。为了填充这个列表视图,我在 onCreate(Bundle savedInstanceState) 方法中创建了一个数组适配器。如果文件中有行,则列表视图将填充项目。 arrayadapter 部分如下所示:
final ListView lv1 = (ListView) findViewById(R.id.ListView01);
ArrayAdapter<String> adapter1;
adapter1 = new ArrayAdapter<String>(Main.this,R.layout.list_black_text,R.id.list_content, assignArr0);
lv1.setAdapter(adapter1);
adapter1.notifyDataSetChanged();
然后通过单击 Menu item1(所以现在我们在 onCreate(Bundle savedInstanceStat) 方法之外,我在文本文件中写了一行。现在一切正常。如果我退出并重新打开应用程序,新行将出现在listview。但是添加新行后listview没有刷新,所以在“case R.id.Menu1:”部分的末尾。
因此,在向文件添加一行之后,我想通过将文件中的行读取到数组中来刷新列表视图,然后用该数组填充列表视图。问题是我不能这样做,即使我将 ArrayAdapter<String> adapter1; 行放在声明其他数组和变量的 onCreate() 方法之外。
它看不到列表视图(lv1 无法解析)。 如果我定义了其他变量所在的 ListView (ListView lv1;),则程序的整个部分都不起作用。
我还需要在填充之前通过adapter1.clear(); 或 sg 清空列表视图(适配器?)。
欢迎任何想法。
【问题讨论】: