返回片段时重新加载列表视图

时间:2014-03-03 14:27:14

标签: android listview android-listview android-fragments

我有一个扩展ActionBarActivity的类来处理我的碎片。

我正在创建一个片段:此片段使用一些TextViewsEditTextButtonListView来扩展布局。根据用户在EditText上插入的输入,在他按Button之后执行查询,并使用扩展ListView的适配器填充ArrayAdapter<String[]>

在该列表onItemSelected上,创建一个新片段,并在提交事务之前添加addToBackStack(null)。信息显示在新片段中,当用户按下后退按钮时,会显示带有listview的片段。除了未填充的listview之外,所有项目都显示为之前。

我有这个:

    @Override
    public void onResume() {
        super.onResume();
        if (operation == 2) {
            if (search.listContent != null) {
                //search.inputQuery.setText("x");
                search.arrayListAdapter.notifyDataSetChanged();
                search.listContent.invalidateViews();
            }
        }
    }

我已尝试通知适配器已进行更改并尝试invalidateViews,但信息未显示。

如果我尝试调试search,我可以看到列表视图(listcontent)在那里并且设置了adapter。我甚至可以看到适配器的内容,即之前在listview中显示的数据。

如何重新加载listview

static ArrayList<String[]> allData = new ArrayList<String[]>();
...
bD.open();
Cursor query = null;
// perform query
query.moveToFirst();
for (int j = 0; j < query.getCount(); j++) {
    String[] fData = new String[]{"idNumber", "des", "source", "bd"};
    fData[0] = String.valueOf(query.getInt(0));
    fData[1] = query.getString(1);
    fData[2] = getSource(query.getInt(2), i + 1);
    fData[3] = String.valueOf(i + 1);
    allData.add(fData);
    query.moveToNext();
}
bD.close();

0 个答案:

没有答案