2017-04-25 14 views
0

ハードコーディングされたString配列を作成すると、グリッドビューに表示されます。そこで私はムービーと呼ばれるクラスを作成してムービータイトルとムービーポスター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

こんにちはロハン、ありがとう、 tempMovieにデータが取り込まれていますが、位置が0に止まっているため、最初のデータが入力されています。しかし、私は再びそれを調べて、それが正しくポピュレートされていることを確認します。それはおそらく0に止まっている理由です。 –

+0

@JerryCheng - はい、正しい位置値を更新する必要があります。 –

+0

位置の値を更新するにはどうすればよいですか?それはアダプタの全体のポイントではなく、自動的に更新されますか? –

0

私は問題が何であるかを知りました。 AsyncTaskを使用すると、データがロードされる前にUIがビューを表示しているため、空の画面が表示される前に表示されます。デバッグ時に、ビューが生成されたコードをステップ実行しているときにこれを見つけました。だから私はそれを見て、その原因を示しています。なぜなら、doInBackgroundが終了したときにonPostExecuteを使用してデータをビューにロードしロードする必要があるからです。

関連する問題