Android 使用自定义ArrayAdapter won';t第一次加载(asynktask)

Android 使用自定义ArrayAdapter won';t第一次加载(asynktask),android,android-studio,gridview,android-arrayadapter,custom-adapter,Android,Android Studio,Gridview,Android Arrayadapter,Custom Adapter,问题是,我不明白为什么在我第一次运行应用程序时,网格中不会充满图像。如果我刷新或更改为横向模式,图像将加载,应用程序运行良好。我假设它一定是我给适配器的列表,不知何故,我第一次丢失了他的引用,当onCreateView再次调用(刷新/横向)时,它得到了修复。我试图更改定义适配器、列表等的位置,以及setGridData之类的一些方法,但都不起作用。也许你能帮我 这是片段和asynkTask的代码(从其工作方式来看) 公共类电影片段扩展片段{ 私有GridViewAdapter mGridView

问题是,我不明白为什么在我第一次运行应用程序时,网格中不会充满图像。如果我刷新或更改为横向模式,图像将加载,应用程序运行良好。我假设它一定是我给适配器的列表,不知何故,我第一次丢失了他的引用,当onCreateView再次调用(刷新/横向)时,它得到了修复。我试图更改定义适配器、列表等的位置,以及setGridData之类的一些方法,但都不起作用。也许你能帮我

这是片段和asynkTask的代码(从其工作方式来看)

公共类电影片段扩展片段{
私有GridViewAdapter mGridViewAdapter;
private ArrayList mMovieList=new ArrayList();
公共电影片段(){
}
@凌驾
public void onStart(){
super.onStart();
FetchMoviesTask movieTask=新建FetchMoviesTask();
电影任务。执行(“流行”);
}
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//添加此行,以便此片段处理菜单事件。
设置选项菜单(真);
}
@凌驾
创建选项菜单(菜单菜单,菜单充气机){
充气机。充气(R.menu.moviefragment,menu);
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
//处理操作栏项目单击此处。操作栏将
//自动处理Home/Up按钮上的点击,只要
//在AndroidManifest.xml中指定父活动时。
int id=item.getItemId();
if(id==R.id.action\u刷新){
FetchMoviesTask movieTask=新建FetchMoviesTask();
电影任务。执行(“流行”);
返回true;
}
返回super.onOptionsItemSelected(项目);
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图根视图=充气机。充气(R.layout.moviefragment,container,false);
mGridViewAdapter=新的GridViewAdapter(getActivity(),R.layout.movie_列表_项,mMovieList);
GridView movieGrid=(GridView)rootView.findviewbyd(R.id.GridView\u movie);
setAdapter(mGridViewAdapter);
返回rootView;
}
公共类FetchMoviesTask扩展了AsyncTask{
私有最终字符串LOG_TAG=FetchMoviesTask.class.getSimpleName();
私有电影[]getMoviesDataFromJson(字符串moviesJsonStr)抛出JSONException{
最终字符串OMDB_RESULTS=“RESULTS”;
最终字符串OMBD_POSTER_PATH=“POSTER_PATH”;
最终字符串OMBD\u RELEASE\u DATE=“RELEASE\u DATE”;
最终字符串OMBD_OVERVIEW=“OVERVIEW”;
最终字符串OMBD_ORIGINAL_TITLE=“ORIGINAL_TITLE”;
最终字符串OMBD_VOTE_AVERAGE=“VOTE_AVERAGE”;
最终字符串url=”http://image.tmdb.org/t/p/";
最终字符串imageSize=“w185”;
JSONObject moviesJson=新的JSONObject(moviesJsonStr);
JSONArray moviesArray=moviesJson.getJSONArray(OMDB_结果);
电影[]结果=新电影[moviesArray.length()];
//CUIDADO ACA不在这里

对于(int i=0;i我也遇到了与此项目类似的问题。请尝试以下操作:

mGridViewAdapter.notifyDataSetChanged()
当前。您没有对任何对象调用它。如果这不起作用,请尝试此方法:

mGridViewAdapter.notifyDataSetInvalidated()

进一步阅读:

我对这个项目也有类似的问题。请尝试以下方法:

mGridViewAdapter.notifyDataSetChanged()
当前。您没有对任何对象调用它。如果这不起作用,请尝试此方法:

mGridViewAdapter.notifyDataSetInvalidated()

进一步阅读:

当方法setGridData被激发时,我在适配器内部调用它。我将尝试第二个方法。我不知道如何使我的数据集无效会有帮助,您在哪里使用它?我在
postExecute()
的适配器对象上使用了它。因此我设置了数据,然后调用了
Adapter.notifyDataSetInvalidated()
Udacity论坛中有一个关于此问题的讨论,请尝试搜索它。我将尝试查找它。我在启动方法setGridData时在适配器内部调用它。我将尝试第二个方法。我不知道如何使我的数据集无效,您在哪里使用它?我在
postExecute()上的适配器对象上使用了它
。因此,我设置了数据,然后调用了适配器。notifyDataSetInvalidated()
Udacity论坛中有一个关于此问题的讨论,请尝试搜索它。我将尝试查找它。