为什么带有edittext的alertdialog会刷新我的列表视图?

时间:2016-12-01 23:49:28

标签: listview android-asynctask android-arrayadapter android-lifecycle

我对Android编程/ Activity Lifecycle相对较新。我有一个带有列表视图的应用程序,该列表视图由自定义对象的数组列表填充。当创建该arraylist时,会调用Asynctask,它从API中提取信息并将其保存到arraylist中。当应用程序启动时,arraylist将使用API​​中的信息成功填充到列表视图中。不幸的是,当我导航回主屏幕然后重新进入应用程序时,我的列表视图为空。当我锁定并解锁设备或按下屏幕上显示警告对话框的按钮时,我的空列表视图会再次显示。

目前,我依赖于一个刷新按钮,该按钮调用刷新列表视图的警告对话框。我想消除对此刷新按钮的需要,以便应用程序自动刷新。你能帮我理解为什么下面的代码会刷新结果吗?我已经尝试了许多不同的方法来解决oncreate和onrestart中的这个问题,到目前为止还没有成功。

public void refreshResults(final View view) {
    // Creating alert Dialog with one Button
    AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
    final EditText input = new EditText(MainActivity.this);

    alertDialog.setView(input);
    alertDialog.setMessage("Refreshing results");

    alertDialog.setNegativeButton("OK",
        new DialogInterface.OnClickListener() {
          public void onClick(DialogInterface dialog, int which) {
            dialog.cancel();
          }
        });

    alertDialog.show();
}

我的文件结构如下:

Project
|
|-AdjustInventory
|-AdjustInventoryLogin
|-Administrator Activity
|-CustomItemsAdapter
|-FetchInventory
|-FetchInventoryLogin
|-Item
|-MainActivity

填充arraylist的asynctask通过Item.getitems在MainActivity的前几行中的函数外部调用。适配器是通过onPostExecute中的Asynctask Load设置的,其中包括processdialog。在onResume中调用Load Asynctask。我已经尝试在onCreate,onRestoreInstanceState,onStart和onResume中设置适配器,并且遇到与使用Load Asynctask设置适配器之前相同的问题。

0 个答案:

没有答案