I'm working on the code right now, and I can't move forward after I face that problem What should I do?
java.lang.RuntimeException: Unable to start activity ComponentInfo{org.techtown.voiceletter/org.techtown.voiceletter.VoiceRecord_Text_List}: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.recyclerview.widget.RecyclerView.setAdapter(androidx.recyclerview.widget.RecyclerView$Adapter)' on a null object reference
2022-05-07 23:20:46.363 18404-18404/? E/USNET: USNET: appName: org.techtown.voiceletter 2022-05-07 23:20:48.385 18404-18404/org.techtown.voiceletter E/AndroidRuntime: FATAL EXCEPTION: main Process: org.techtown.voiceletter, PID: 18404 java.lang.RuntimeException: Unable to start activity ComponentInfo{org.techtown.voiceletter/org.techtown.voiceletter.VoiceRecord_Text_List}: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.recyclerview.widget.RecyclerView.setAdapter(androidx.recyclerview.widget.RecyclerView$Adapter)' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4035) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4201) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2438) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:226) at android.os.Looper.loop(Looper.java:313) at android.app.ActivityThread.main(ActivityThread.java:8669) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.recyclerview.widget.RecyclerView.setAdapter(androidx.recyclerview.widget.RecyclerView$Adapter)' on a null object reference at org.techtown.voiceletter.VoiceRecord_Text_List.onCreate(VoiceRecord_Text_List.java:43) at android.app.Activity.performCreate(Activity.java:8290) at android.app.Activity.performCreate(Activity.java:8270) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1329) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4009) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4201) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2438) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:226) at android.os.Looper.loop(Looper.java:313) at android.app.ActivityThread.main(ActivityThread.java:8669) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)
MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button_goto_voicerecord_text_list = findViewById(R.id.goto_voicerecord_text_list);
button_goto_voicerecord_text_list.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent myIntent = new Intent(MainActivity.this, VoiceRecord_Text_List.class);
startActivity(myIntent);
finish();
}
});
}
}
VoiceRecord_Text_List.java
public class VoiceRecord_Text_List extends AppCompatActivity {
private RecyclerView mRecyclerView;
private MyRecyclerAdapter mRecyclerAdapter;
private ArrayList<record_voice_text> mrecord_voice_text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mRecyclerView = findViewById(R.id.recyclerView);
/* initiate adapter */
mRecyclerAdapter = new MyRecyclerAdapter();
/* initiate recyclerview */
mRecyclerView.setAdapter(mRecyclerAdapter);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
mRecyclerView.setLayoutManager(new LinearLayoutManager(this, RecyclerView.HORIZONTAL,false));
/* adapt data */
mrecord_voice_text = new ArrayList<>();
for(int i=0;i<=12854;i++){
mrecord_voice_text.add(new record_voice_text("hello"));
}
mRecyclerAdapter.setTextList(mrecord_voice_text);
}
}
MyRecyclerAdapter.java
public class MyRecyclerAdapter extends RecyclerView.Adapter<MyRecyclerAdapter.ViewHolder> {
private ArrayList<record_voice_text> mRecordVoiceText;
@NonNull
@Override
public MyRecyclerAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_recycleview, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull MyRecyclerAdapter.ViewHolder holder, int position) {
holder.onBind(mRecordVoiceText.get(position));
}
public void setTextList(ArrayList<record_voice_text> list){
this.mRecordVoiceText = list;
notifyDataSetChanged();
}
@Override
public int getItemCount() {
return mRecordVoiceText.size();
}
class ViewHolder extends RecyclerView.ViewHolder {
ImageView check;
TextView order;
TextView message;
public ViewHolder(@NonNull View itemView) {
super(itemView);
check = (ImageView) itemView.findViewById(R.id.check);
order = (TextView) itemView.findViewById(R.id.order);
message = (TextView) itemView.findViewById(R.id.message);
}
void onBind(record_voice_text item){
check.setImageResource(item.getResourceId());
order.setText(item.getOrder());
message.setText(item.getMessage());
}
}
}