0

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());
        }
    }
}

0 Answers0