我是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");
   }
}


这可能对您有帮助。

09-25 20:44