使用更新的变量刷新 activity
refresh activity with updated variables
我无法在这里找到我对这个问题的答案,但我有一个 activity 和一个来自数据库的 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);`
我想刷新我的 activity,同时放入用户可以在上下文菜单中更改的更新变量。
@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?但我不确定如何为我的 activity 实现这些。我需要一个意图吗?正如您从上面的程序中看到的那样,我已经尝试使用 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);
}
谢谢,任何指点都会很有帮助。这是我自己开发的第一个应用程序。
只需将 Adapter 与您的 ListView 一起使用,当您更改数据时,只需更新列表中的数据并调用 adapter.notifyDataSetChanged()。
如果您想编写自己的 Adapter,请从 BaseAdapter 扩展它,否则 ArrayAdapter 是最简单易用的。
这可能会让您开始使用适配器:https://guides.codepath.com/android/Using-an-ArrayAdapter-with-ListView
我无法在这里找到我对这个问题的答案,但我有一个 activity 和一个来自数据库的 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);`
我想刷新我的 activity,同时放入用户可以在上下文菜单中更改的更新变量。
@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?但我不确定如何为我的 activity 实现这些。我需要一个意图吗?正如您从上面的程序中看到的那样,我已经尝试使用 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);
}
谢谢,任何指点都会很有帮助。这是我自己开发的第一个应用程序。
只需将 Adapter 与您的 ListView 一起使用,当您更改数据时,只需更新列表中的数据并调用 adapter.notifyDataSetChanged()。
如果您想编写自己的 Adapter,请从 BaseAdapter 扩展它,否则 ArrayAdapter 是最简单易用的。
这可能会让您开始使用适配器:https://guides.codepath.com/android/Using-an-ArrayAdapter-with-ListView