2017-04-25 38 views
0

请大家帮忙,所以当我创建硬编码的字符串数组时,它显示在gridview中。所以我创建了一个名为movie的类来存储电影标题和电影海报url路径来获取图像。当我运行应用程序时,我得到一个空白屏幕。以下附件是我的适配器代码,当我调试时,我检查数据列表和我得到的值是正确的。电影标题以及海报图像路径。列表适配器的位置总是停留在0.请让我知道如果这是足够的,如果不是,我也可以发布我的主要活动代码。Android自定义适配器生成空白屏幕和位置总是0

public class MovieListAdapter extends BaseAdapter { 

    public Context mContext; 
    public ArrayList<Movie> malAdapterMoviesList; 

    public MovieListAdapter(Context context, ArrayList<Movie> movies) { 
     this.mContext = context; 
     this.malAdapterMoviesList = movies; 
    } 

    @Override 
    public int getCount() { return malAdapterMoviesList.size(); } 

    @Override 
    public Object getItem(int position) { return 
     malAdapterMoviesList.get(position); } 

    @Override 
    public long getItemId(int position) { return position; } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     Movie tempMovie = malAdapterMoviesList.get(position); 

     if(convertView == null) { 
      convertView = LayoutInflater.from(mContext) 
        .inflate(R.layout.movie_list_item, parent, false); 
     } 

     ImageView mMoviePoster = (ImageView) 
      convertView.findViewById(R.id.ivImageView); 
     TextView mMovieTitle = (TextView) 
      convertView.findViewById(R.id.tvMovieTitle); 
     mMovieTitle.setText(tempMovie.getOriginalTitle()); 

     Picasso 
      .with(mContext) 
      .load(tempMovie.getImagePosterStr()) 
      .fit() 
      .into(mMoviePoster); 

     return convertView; 
    } 

} 

回答

0

能否请您检查 - 在getView功能tempMovie对象得到填充或不? 我想tempMovie对象没有被填充。

+0

嗨Rohan,感谢您的回复,是的,我检查了, tempMovie正在被填充......但由于位置被卡在0,它只是填充第一个。但我会再看一遍,确保它正确填充,也许这就是为什么它被卡在0. –

+0

@JerryCheng - 是的正确,位置值需要更新。 –

+0

我该如何更新仓位值?是不是适配器的整个点,自动更新? –

0

所以我发现问题是什么。在显示空白屏幕之前,因为使用AsyncTask时,UI在数据加载之前显示视图。我在调试时发现了这一点,当我逐步完成视图生成的代码时。所以我看了起来,它显示的原因是因为我需要使用onPostExecute设置和doInBackground完成时加载数据到视图