안드로이드 리사이클러뷰 - 액티비티 - 리사이클러뷰 시 오류
조회수 2671회
A 리사이클러뷰에서 이벤트발생시 B리사이클러뷰의 이미지를 변경하는건대 이부분에서 오류가나네요.
로직은 이렇습니다. A - 액티비티 - B 리사이클러뷰 입니다.
E/AndroidRuntime: FATAL EXCEPTION: main
Process: jerry.apptest.myclair, PID: 18802
java.lang.NullPointerException: Attempt to read from field 'android.view.View android.support.v7.widget.RecyclerView$ViewHolder.itemView' on a null object reference
at jerry.apptest.myclair.SoundSelectActivity.onClickSound_disable(SoundSelectActivity.java:309)
at jerry.apptest.adapter.SoundChannel_Compact_Adapter$ViewHolder.onClick(SoundChannel_Compact_Adapter.java:109)
at android.view.View.performClick(View.java:4811)
at android.view.View$PerformClick.run(View.java:20136)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5546)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:967)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)
SoundSelectActivity.java:309
@Override
public void onClickSound_disable(int position) {
ProgressBar sound_progres;
sound_progres = (ProgressBar) mRecyclerView.findViewHolderForAdapterPosition(position).itemView.findViewById(R.id.sound_progress);
if(mSoundlist.get(position).getismutte()){
sound_progres.setProgressDrawable(SoundSelectActivity.this.getResources().getDrawable(R.drawable.circularprogress_disable));
mSoundlist.get(position).setismutte(false);
}else{
sound_progres.setProgressDrawable(SoundSelectActivity.this.getResources().getDrawable(R.drawable.circularprogress));
mSoundlist.get(position).setismutte(true);
}
}
SoundChannel_compact_Adapter.java:109
case R.id.sound_progress_compact:
Toast.makeText(context,"this "+position,Toast.LENGTH_SHORT).show();
sound_progress_compact.setProgressDrawable(context.getResources().getDrawable(R.drawable.circularprogress_disable));
ClickInterface.onClickSound_disable(position);
break;
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
예상은 하시겠지만 itemView 부분이 null인것으로 추측되네요 itemView 를 생성하는 부분을 쫓아가서 디버깅 해봐야 할것 같습니다.
itemView 뷰가 생성이 되었는지 로그를 찍어봐서 확인해볼 필요가 있습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력