私はカップルの断片を持つナビゲーションドロワーアプリを持っています。そのうちの1人は、recyclerviewadapter/recyclerviewholderを使用してアイテムを表示します。フラグメント間の切り替えはうまくいきますが、切り替え後には、リスナーを持つアイテムをクリックするとnullpointerexceptionが発生します。今、私はリスナーなしでそれをテストし、それは正常に動作します。リスナーがリフレッシュされていないと思いますか?フラグメントがスワイプしているとき?誰かが私を助けてくれますか?日を探していて、まだ修正できません。フラグメントを前後に切り替えた後のRecyclerviewのAndroid Nullpointerexception
プロセス:com.mikepenz.materialdrawer.app.debug、PID:30803 のjava.lang.NullPointerException:「 インターフェイスメソッドを呼び出すための試みのボイド com.mikepenz.materialdrawer.app.RecyclerViewAdapter $ OnItemClickListener.onItemClick (java.lang.String) ' nullオブジェクトの参照に com.mikepenz.materialdrawer.app.RecyclerViewAdapter $ 1.onClick(RecyclerViewAdapter.java:43) at android.view.View.performClick(View.java: 5198) android.view.View $ PerformClick.run(View.java:21147)android.os.Looper.loop(Looper.java:148) でandroid.os.Handler.dispatchMessage(Handler.java:95) でandroid.os.Handler.handleCallback(Handler.java:739) ででandroid.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(ネイティブメソッド) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java: com.android.internal.os.ZygoteInit.mainにおける726) (ZygoteInit.java:616)
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewHolders> {
private List<ItemObject> itemList;
private Context context;
private OnItemClickListener listener;
public RecyclerViewAdapter(Context context, List<ItemObject> itemList) {
this.itemList = itemList;
this.context = context;
}
@Override
public RecyclerViewHolders onCreateViewHolder(ViewGroup parent, int viewType) {
View layoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_view_list, null);
RecyclerViewHolders rcv = new RecyclerViewHolders(layoutView, context);
return rcv;
}
@Override
public void onBindViewHolder(RecyclerViewHolders holder, final int position) {
holder.countryName.setText(itemList.get(position).getName());
// holder.countryPhoto.setImageResource(itemList.get(position).getPhoto());
holder.countryName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// listener.onItemClick(itemList.get(position).getName());
Log.d("HELLO ",itemList.get(position).getName());
if (position ==1)
{
listener.onItemClick("GA");
}
}
});
}
public interface OnItemClickListener{
void onItemClick(String textName);
}
public void setOnItemClickListener(OnItemClickListener listener){
this.listener = listener;
}
@Override
public int getItemCount() {
Log.e("itemlist size ", this.itemList.size() + "");
return this.itemList.size();
}
}
それを設定しようとすると、あなたのリスナーのnullの場合も、それはあなたのために働くかもしれ
であなたの次のコード
を置き換えますあなたの 'textName'がnullであると言っています。何値が渡されているかを確認してください。 – Mohit