在Arraylist中的Defalut add Card中,对象为空

时间:2017-04-07 07:46:02

标签: java android

我创建默认课程,并在所有应用程序中查看列表购物车

 public class Default extends Application {

 public ArrayList<Card> listCard;

        public ArrayList<Card> getListCard() {
            return listCard;
        }

        public void setListCard(ArrayList<Card> listCard) {
            this.listCard = listCard;
        }

    }

下一次

public class ScanQrCodeActivity extends AppCompatActivity {

     private ArrayList<Card> cardList;

...

                    if (hotpValue.equals(passwordHotp)) {

                        Card card = new Card(path3, base32, nameCard, intervalTotp, passwordHotp, getDate(), expirationDate, hotpValue);

                      Default app = (Default) getApplicationContext();
                            cardList = app.getListCard();
                            cardList.add(card); // show error line code 
                            app.setListCard(cardList);
                            cardList = new ArrayList<Card>();
                            cardList= app.getListCard();
                            System.out.println("Dodanokarte"+card.getNameCard());

                    }

见日志

  

处理:com.novum.smrtkarta,PID:13844                                                                        java.lang.NullPointerException:尝试调用虚方法   &#39; boolean java.util.ArrayList.add(java.lang.Object)&#39;在null对象上   参考                                                                            在   com.xxxx.smrtkarta.activity.ScanQrCodeActivity $ 3 $ 1.run(ScanQrCodeActivity.java:277)                                                                            在android.os.Handler.handleCallback(Handler.java:739)                                                                            在android.os.Handler.dispatchMessage(Handler.java:95)                                                                            在android.os.Looper.loop(Looper.java:148)                                                                            在android.app.ActivityThread.main(ActivityThread.java:5417)                                                                            at java.lang.reflect.Method.invoke(Native Method)                                                                            在   com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726)                                                                            在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

我做错了什么?

2 个答案:

答案 0 :(得分:2)

此处cardList为空。在调用listCard方法之前,请确保您已在Default课程中初始化了getListCard

答案 1 :(得分:1)

这应该是你需要改变的 变化:

ArrayList<Card> listCard

为:

ArrayList<Card> list = new ArrayList<Card>;