0

RecyclerViewのアダプタのメソッドが呼び出されていません。RecyclerViewアダプタ呼び出されないメソッド

  • のみgetItemCount()とクラスコンストラクタが呼び出される(リストが空でない ですが、私はことを確認しています)。
  • 方法onCreateViewHolder()およびonBindViewHolder()は呼び出されません。
  • 私は同じアクティビティで他のフラグメントを持っていますが、ほぼ同じ プロシージャを使用していますが、完全に正常に動作しています。
  • 新しいアダプタクラスを作成しようとしましたが、それも機能しませんでした。
  • メソッドgetItemCount()が2回呼び出されました
  • 2つの異なるrecyclerViewsに対して同じXMLファイルを使用していますが、どちらも問題なく動作しています。

マイアダプタクラス

public class OfflineAdapter extends RecyclerView.Adapter<OfflineAdapter.OfflineHolder>{ 
private Context context; 
private List<MovieDBObject> list; 

public class OfflineHolder extends RecyclerView.ViewHolder { 
    @BindView(R.id.movie_grid_imageView) 
    ImageView imageView; 

    public OfflineHolder(View itemView) { 
     super(itemView); 
     ButterKnife.bind(this, itemView); 
     Log.i("bitmap", String.valueOf(4)); 
    } 
} 

public OfflineAdapter (Context context, List<MovieDBObject> list) { 
    this.context = context; 
    this.list = list; 
    Log.i("bitmap", String.valueOf(1)); 
} 

@Override 
public OfflineHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.movie_grid_imageview, parent, false); 
    Log.i("bitmap", String.valueOf(3)); 
    return new OfflineHolder(view); 
} 

@Override 
public void onBindViewHolder(OfflineHolder holder, int position) { 
    MovieDBObject object = list.get(position); 
    holder.imageView.setImageBitmap(object.getPoster()); 
    Log.i("bitmap", String.valueOf(5)); 
} 

@Override 
public int getItemCount() { 
    Log.i("bitmap", String.valueOf(2)); 
    return list.size(); 
} 
} 

断片

public class FavouriteMovies extends Fragment{ 
@BindView(R.id.favourite_movies_recyclerView) 
RecyclerView recyclerView; 
List<MovieDBObject> list = new ArrayList<>(); 
MovieDBHelper movieDBHelper; 
OfflineAdapter offlineAdapter; 

@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.fragment_fav_movies, container, false); 
    ButterKnife.bind(this, rootView); 

    movieDBHelper = ((MainActivity)getActivity()).dbHelper; 
    final GridLayoutManager layoutManager = new GridLayoutManager(getContext(), 2); 

    offlineAdapter = new OfflineAdapter(getContext(), list); 
    recyclerView.setAdapter(offlineAdapter); 
    recyclerView.setLayoutManager(layoutManager); 
    recyclerView.hasFixedSize(); 
    recyclerView.setItemAnimator(new DefaultItemAnimator()); 
    prepareList(); 
    return rootView; 
} 

private void prepareList(){ 
    list = movieDBHelper.getAllMovies(); 
    Log.i("bitmap", list.size()+""); 
    offlineAdapter.notifyDataSetChanged(); 
} 
} 
AdapterView

ための断片

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="HELLO"/> 

<android.support.v7.widget.RecyclerView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/favourite_movies_recyclerView"/> 

</LinearLayout> 

XMLファイルのXMLファイルをRecyclerView

を呼び出します OfflineAdapter
<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" android:layout_width="match_parent" 
android:layout_height="wrap_content"> 

<ImageView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/movie_grid_imageView"/> 

</RelativeLayout> 

答えて

1

更新データの例を設定するための新しい方法を作成します。

private void updateData(List<MovieDBObject> dataList){ 
    this.list = dataList; 
} 

その後、更新あなたの問題を解決しますprepareList

private void prepareList(){ 
    list = movieDBHelper.getAllMovies(); 
    Log.i("bitmap", list.size()+""); 
    offlineAdapter.updateData(list); 
    offlineAdapter.notifyDataSetChanged(); 
} 

+0

第二の一つは、私の問題を解決しました。 –

関連する問題