Java 将字符串(或数组)传递到另一个活动中的ListView(NPE错误)
我希望在ExpAct(2.Activity)中有MainActivity的工作列表视图 我拥有:编辑文本和一个按钮,单击该按钮可创建列表视图的新条目。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
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。非常感谢。