我对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设置适配器之前相同的问题。