Java 将字符串(或数组)传递到另一个活动中的ListView(NPE错误)

Java 将字符串(或数组)传递到另一个活动中的ListView(NPE错误),java,android,listview,nullpointerexception,android-arrayadapter,Java,Android,Listview,Nullpointerexception,Android Arrayadapter,我希望在ExpAct(2.Activity)中有MainActivity的工作列表视图 我拥有:编辑文本和一个按钮,单击该按钮可创建列表视图的新条目。 MainAct上的ListView仅用于检查,如果ExpAct正常工作,则会将其删除。 点击“下一步”Btn,我就可以开始表演了 我得到一个原始使用参数警告。-如果我要解决这个问题,它会给我一个表达式的NPE崩溃,或者一个空的ListView 问题是字符串/数组的getter意图不起作用吗?还是说这取决于ArrayAdapter的创建 MainA

我希望在ExpAct(2.Activity)中有MainActivity的工作列表视图

我拥有:编辑文本和一个按钮,单击该按钮可创建列表视图的新条目。
MainAct上的ListView仅用于检查,如果ExpAct正常工作,则会将其删除。
点击“下一步”Btn,我就可以开始表演了

我得到一个原始使用参数警告。-如果我要解决这个问题,它会给我一个表达式的NPE崩溃,或者一个空的ListView

问题是字符串/数组的getter意图不起作用吗?还是说这取决于ArrayAdapter的创建

MainActivity.java

public类MainActivity扩展了AppCompatActivity{
ListView LV1;
ArrayListListXP;
按钮1,btnext;
编辑文本ETbc;
ArrayAdapterArrayAdapter;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LV1=findViewById(R.id.LV1);
button1=findViewById(R.id.button1);
ETbc=findviewbyd(R.id.ETbc);
listExp=newarraylist();
arrayAdapter=new arrayAdapter(getApplicationContext(),
android.R.layout.simple_list_item_1,listXP);
button1.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
字符串名称=ETbc.getText().toString();
添加(名称);
LV1.设置适配器(阵列适配器);
arrayAdapter.notifyDataSetChanged();
Intent inter=新的Intent(MainActivity.this,ExpAct.class);
inter.putExtra(“键”,ListXP);
设置结果(Activity.RESULT_OK,inter);
}
});
btnext=findviewbyd(R.id.btnext);
btnext.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
意向意向=新意向(MainActivity.this、ExpAct.class);
星触觉(意向);
完成();
}
});
}
}
*ExpAct.java:*

public类ExpAct扩展main活动{
ListView LV2;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u exp);
Intent i=getIntent();
listExp=i.getStringArrayListExtra(“键”);
LV2=findViewById(R.id.LV2);
ArrayAdapter ArrayAdapter=新的ArrayAdapter(getApplicationContext(),
android.R.layout.simple_list_item_1,R.id.LV2,listxp);//这里没有R.id.LV2
LV2.设置适配器(阵列适配器);
}
}
因为它变红了

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.testcheckbox, PID: 20358
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.testcheckbox/com.example.testcheckbox.ExpAct}. 
      java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2724)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2789)
        at android.app.ActivityThread.-wrap12(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1527)
        at android.os.Handler.dispatchMessage(Handler.java:110)
        at android.os.Looper.loop(Looper.java:203)
        at android.app.ActivityThread.main(ActivityThread.java:6255)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924)
     Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference
        at android.widget.ArrayAdapter.getCount(ArrayAdapter.java:344)
        at android.widget.ListView.setAdapter(ListView.java:510)
        at com.example.testcheckbox.ExpAct.onCreate(ExpAct.java:27)
        at android.app.Activity.performCreate(Activity.java:6670)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2677)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2789) 
        at android.app.ActivityThread.-wrap12(ActivityThread.java) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1527) 
        at android.os.Handler.dispatchMessage(Handler.java:110) 
        at android.os.Looper.loop(Looper.java:203) 
        at android.app.ActivityThread.main(ActivityThread.java:6255) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924) 
Disconnected from the target VM, address: 'localhost:57662', transport: 'socket'

看起来您正在尝试在不将ArrayList作为额外列表的情况下启动活动

btnext = findViewById(R.id.btnext);
btnext.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
       Intent intent = new Intent(MainActivity.this, ExpAct.class);
       // You need to put the extra data here:
       intent.putExtra("key", listExp);
       startActivity(intent);
       finish();
    }
});
当获得NullPointerException时,应首先检查列表为何为null:

尝试在上调用接口方法“int java.util.List.size()” 空对象引用


因此,在查看代码后,我发现您并不是有意传递ArrayList。

我认为上一个按钮1.setOnClickListener每次按下都会传递ArrayList。非常感谢。