我有一个扩展ActionBarActivity
的类来处理我的碎片。
我正在创建一个片段:此片段使用一些TextViews
,EditText
,Button
和ListView
来扩展布局。根据用户在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();