请帮助,所以当我创建硬编码的String数组时,它会显示在gridview中。所以我创建了一个名为movie的类来存储电影标题和电影海报url路径来获取图像。当我运行应用程序时,我得到一个空白屏幕。以下附件是我的适配器代码,当我调试时,我检查数据列表和我得到的值是正确的。电影标题以及海报图片路径。列表适配器的位置始终保持为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 :(得分:0)
请你检查一下 - 在getView函数中是 tempMovie 对象是否已经填充? 我猜tempMovie对象没有被填充。
答案 1 :(得分:0)
所以我发现了问题所在。在显示空白屏幕之前,因为在使用AsyncTask时,UI在加载数据之前显示视图。我在调试时发现了这一点,当我逐步完成代码生成视图时。所以我查了一下,它显示原因是因为我需要使用onPostExecute来设置并在doInBackground完成时将数据加载到视图中