我创建默认课程,并在所有应用程序中查看列表购物车
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)
我做错了什么?
答案 0 :(得分:2)
此处cardList
为空。在调用listCard
方法之前,请确保您已在Default
课程中初始化了getListCard
答案 1 :(得分:1)
这应该是你需要改变的 变化:
ArrayList<Card> listCard
为:
ArrayList<Card> list = new ArrayList<Card>;