使用更新的变量刷新 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