【发布时间】:2017-03-12 16:08:16
【问题描述】:
我无法在此处找到此问题的答案,但我有一个来自数据库的 ListView 活动。
String ascOrDescFilter = " ASC";
String columnFilter = "amount";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
helper = new DatabaseHelper(this);
dbList= new ArrayList<DatabaseModel>();
dbList = helper.getDataFromFilteredDB(columnFilter, ascOrDescFilter);`
我想刷新我的活动,同时放入用户可以在上下文菜单中更改的更新变量。
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
switch (item.getItemId()) {
case R.id.schedule:
columnFilter="spare1";
ascOrDescFilter= " ASC";
//dbList = helper.getDataFromFilteredDB("spare1", " ASC");
onRestart();
return true;
case R.id.amount:
columnFilter="spare1";
ascOrDescFilter= " ASC";
//dbList = helper.getDataFromFilteredDB("balance", " DESC");;
return true;
default:
return super.onContextItemSelected(item);
}
}
我认为我需要调用 onRestart 或 onResume?但我不确定如何为我的活动实施这些。我需要一个意图吗?正如您从上面的程序中看到的那样,我已经尝试使用 onStart 方法(以及 onResume + onRecreate),但没有任何东西可以让我的 Listview 刷新。
@Override
public void onRestart()
{
super.onRestart();
startActivity(getIntent());
}
@Override
protected void onResume() {
super.onResume();
}
//@Override
protected void onRecreate() {
super.onResume();
this.onCreate(null);
}
谢谢,任何指针都会很有帮助。这是我自己开发的第一个应用程序。
【问题讨论】:
-
无需重新开始您的活动。只需更新列表视图。就像代码中的注释部分一样。它有效吗?如果不是,为什么?
标签: android listview android-activity android-sqlite refresh