【发布时间】:2021-02-23 07:25:55
【问题描述】:
我在尝试通过 bundle 传递数组列表时遇到错误,请帮助
java.lang.RuntimeException:无法启动活动 组件信息{com.sandyzfeaklab.Breakdown_app/com.sandyzfeaklab.breakdown_app.Data_input}: java.lang.NullPointerException:尝试调用虚拟方法 'java.io.Serializable android.os.Bundle.getSerializable(java.lang.String)' 在空对象上 参考 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3449) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601) 在 android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) 在 android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 在 android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) 在 android.os.Handler.dispatchMessage(Handler.java:106) 在 android.os.Looper.loop(Looper.java:223) 在 android.app.ActivityThread.main(ActivityThread.java:7656) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 引起:java.lang.NullPointerException:尝试调用虚拟方法'java.io.Serializable android.os.Bundle.getSerializable(java.lang.String)' 在空对象上 参考 在 com.sandyzfeaklab.breakdown_app.Data_input.onCreate(Data_input.java:61)
以下是我的捆绑接收活动
public class Data_input extends AppCompatActivity {
String Part = "Part Name", problem_desc = "Problem", action_taken = "Action Taken", spares_used = "Spares Used", sap_no = "Sap No", operation = "Operation", end_time = "End Time", Action_taken_by = "Action taken by ", start_time = "Start Time";
TextView starttime, endtime, time_taken;
ArrayList<Sap_code_Model> models = new ArrayList<>();
private static final int SECOND_ACTIVITY_REQUEST_CODE = 0;
@RequiresApi(api = Build.VERSION_CODES.O)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.content_data_input);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FirebaseFirestore db = FirebaseFirestore.getInstance();
EditText part_name, problem_desc_et, action_taken_et, spares_used_et, sap_no_et;
Bundle bundle= getIntent().getExtras();
models= (ArrayList<Sap_code_Model>) bundle.getSerializable("Codes");
Toast.makeText(this, models.size(), Toast.LENGTH_SHORT).show();
这是我的模型课
public class Sap_code_Model implements Serializable {
private long sap_code;
private String sap_description;
private int sap_qty;
public Sap_code_Model() {
}
public long getSap_code() {
return sap_code;
}
public Sap_code_Model setSap_code(long sap_code) {
this.sap_code = sap_code;
return this;
}
public String getSap_description() {
return sap_description;
}
public Sap_code_Model setSap_description(String sap_description) {
this.sap_description = sap_description;
return this;
}
public int getSap_qty() {
return sap_qty;
}
public Sap_code_Model setSap_qty(int sap_qty) {
this.sap_qty = sap_qty;
return this;
}
}
这里的数据发送活动我正在尝试发送数组列表
mDataBinding.fabSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Add_Sap_codes.this, Data_input.class);
Bundle bundle= new Bundle();
bundle.putSerializable("Codes",data);
intent.putExtras(bundle);
setResult(RESULT_OK, intent);
startActivity(intent);
}
});
【问题讨论】:
标签: arraylist android-intent bundle