Java 对象在Arraylist中的Defalut add Card中设置为空

Java 对象在Arraylist中的Defalut add Card中设置为空,java,android,Java,Android,我在所有应用程序中使用查看列表购物车创建默认类 public class Default extends Application { public ArrayList<Card> listCard; public ArrayList<Card> getListCard() { return listCard; } public void setListCard(ArrayList<Ca

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

 public class Default extends Application {

 public ArrayList<Card> listCard;

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

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

    }
公共类默认扩展应用程序{
公共ArrayList列表卡;
公共阵列列表getListCard(){
返回列表卡;
}
公共作废setListCard(ArrayList listCard){
this.listCard=listCard;
}
}
下次什么时候

public class ScanQrCodeActivity extends AppCompatActivity {

     private ArrayList<Card> cardList;
公共类ScanQrCodeActivity扩展了AppCompatActivity{
私人ArrayList卡片列表;

if(hotpValue.equals(passwordHotp)){
Card Card=新卡(路径3,base32,名片,intervalTotp,passwordHotp,getDate(),expirationDate,hotpValue);
默认应用程序=(默认)getApplicationContext();
cardList=app.getListCard();
cardList.add(card);//显示错误行代码
应用程序设置列表卡(卡片列表);
cardList=newarraylist();
cardList=app.getListCard();
System.out.println(“dodanokart”+card.getNameCard());
}
见日志

进程:com.novum.smrtkarta,PID:13844 java.lang.NullPointerException:尝试调用虚拟方法 空对象上的“boolean java.util.ArrayList.add(java.lang.Object)” 参考 在 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) 位于java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)


我做错了什么?

这里的
cardList
为空。在调用
getListCard
方法之前,请确保您已在
Default
类中初始化了
listCard
,您必须更改此方法 更改:

ArrayList列表卡
致:

ArrayList list=新的ArrayList;

在class Defult?中更改此行可能重复
                    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());

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