我是Android新手。我需要你的帮助。我的问题是-我有2个类Nplist.java和Addcustomer.java。在我的AddCustomer类中,有一个TextView
和一个Button
可以进入Nplist类。在我的Nplist类中,有一个检查表,该检查表来自数据库,所有检查的值都存储在ArrayList<String>
中,一个Button
用于返回AddCustomer类。我希望Nplist中的ArrayList<String>
通过显示在我的AddCustomer类Textview
中。我曾经尝试过这些,但是我的Addcustomer类崩溃了。
1.Nplist.class
add.setOnClickListener(new View.OnClickListener() {<br>
@Override<br>
public void onClick(View view) {<br>
Bundle extra=new Bundle();<br>
extra.putSerializable("objects",checkedList);<br>
Intent intent = new Intent(Nplist.this, AddCustomer.class);<br>
intent.putExtra("extra",extra);<br>
startActivity(intent);<br>
});
2.AddCustomer.class
onCrete()...{
Bundle extra = getIntent().getBundleExtra("extra");<br>
ArrayList<String> object = (ArrayList<String>)extra.getSerializable("objects");<br>
for (String str : object) {<br>
getnp.append(str + "\n");<br>
}
}
您期望结果如何?
-您得到的实际结果是什么? (请包括任何错误。)
当我像这样去Nplist-> AddCustomer时,它工作正常,但在(AddCustomer-> Nplist-> AddCustomer)上崩溃
最佳答案
这是因为当您返回AddCustomer
活动时,列表为null。您可以通过创建一个全局类来解决此问题,该类会将列表存储在Static Field中,并且您可以从任何想要的类或Activity中访问该列表。请尝试以下解决方案。Global.java
类如下:
public class Global {
private static ArrayList<String> object = new ArrayList<>();
public static ArrayList<String> getObject() {
return object;
}
public static void setObject(ArrayList<String> object) {
Global.object = object;
}
}
在
NpList.java
类中,设置列表的值如下:add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Global.setObject(checkedList);
Intent intent = new Intent(Nplist.this, AddCustomer.class);
startActivity(intent);
}
});
现在在
AdCustomer.java
中访问,如下所示:onCreate()...{
Bundle extra = getIntent().getBundleExtra("extra");
ArrayList<String> object = Global.getObject();
for (String str : object) {
getnp.append(str + "\n");
}
}
这可能对您有帮助。