更改数据库后更新ListView

时间:2015-12-17 01:01:43

标签: java android listview cursor

我正在使用游标在ListView中显示数据库并以这种方式更新

getSupportLoaderManager().getLoader(0).forceLoad();

问题是它无法正常工作。当从同一个类调用更改方法并且不启动任何新意图时,ListView更新就好了,否则没有任何改变。

例如,这没有效果

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(MainActivity.this, ItemAdd.class);
            startActivity(intent);
            getSupportLoaderManager().getLoader(0).forceLoad();
        }
    });

你有什么建议为什么会这样?任何修复?

问题似乎是在发生更新之前就已经发生了。现在我正在使用

startActivityForResult(intent, 100);

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)          {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK && requestCode == 100) {
        getSupportLoaderManager().getLoader(0).forceLoad();
    }
}

1 个答案:

答案 0 :(得分:0)

为CursorAdapter的ListView扩展创建适配器。 然后你可以使用

notifyDataSetChanged();