2017-04-25 41 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完成時加載數據到視圖