メンバーの1人がarraylistで、このユーザーのインスタンスを作成しましたが、新しい配列リストを設定しようとしている間にユーザーオブジェクトがありました。 "仮想メソッドクラスを呼び出そうとしました。 NULLオブジェクト参照」setterにアクセスしている間にnullPointerExceptionが発生しました
活性に対するUser.setUser_stocks_array(java.util.ArrayListの)」1:
private User localUser;
localUser = new User("", email);
String jsonString = new Gson().toJson(localUser);
Intent loginUserIntent = new Intent(getBaseContext(), StockListActivity.class);
loginUserIntent.putExtra("EXTRA_USER_FROM_LOGIN", jsonString);
startActivity(loginUserIntent);
活動2:
public User gsonReturnUser(String jsonInString){
Gson gson = new Gson();
User tmpUser = gson.fromJson(jsonInString, User.class);
Stock s1 = new Stock("hsdsf", "aa", 15, 20, "yes 4");
Stock s2 = new Stock("cvcx", "aa", 25, 50, "yes fgfd");
Stock s3 = new Stock("asd", "aa", 45, 54, "yes fdg");
Stock s4 = new Stock("uiudf", "aa", 75, 98, "yes cv");
ArrayList<Stock> tmpList = new ArrayList<Stock>();
tmpList.add(0, s1);
tmpList.add(1, s2);
tmpList.add(2, s3);
tmpList.add(3, s4);
tmpUser.setUser_stocks_array(tmpList);
return tmpUser;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_stock_list);
String userFromLogin = getIntent().getStringExtra("EXTRA_USER_FROM_LOGIN");
localUser = gsonReturnUser(userFromLogin);
stockList = localUser.getUser_stocks_array();
}
私のセッター。
public void setUser_stocks_array(ArrayList<Stock> user_stocks_array) {
this.user_stocks_array = user_stocks_array;
}
なぜこのようなことが起こりますか? ありがとう!
更新: 私の最初の活動が適切に発売されていなかったことは、NullPointerExceptionが理由です。
を送信する代わりに、JSON文字列のparcelableを使用することをお勧め 'fromJson'は、あなたが処理されませんこれは、' null'なのでを返すことができます。 – Michael
をデバッガで実行し、変数の値を確認します。良い候補は、 'jsonInString'はあなたが思うものではないということです。典型的な理由は、定数の名前のタイプミスである可能性があります。 – njzk2