私は1つのアクティビティから別のアクティビティへのArrayListを受け取り、リストにデータを追加してから再度渡します。 事は、私がこれを行うときにクラスレベルで宣言しなければならないが、それから私の質問がある。クラスレベルでそれを宣言するときに、インテントからデータを取得するにはどうすればよいですか?クラスレベルでオブジェクトを宣言してインテントデータを取得するにはどうすればよいですか?
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.d(TAG, "Start onCreate Listan");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listan);
Bundle listan = getIntent().getExtras();
ArrayList<Produkt> lista = (ArrayList<Produkt>) getIntent().getSerializableExtra("list");
if (lista.isEmpty()) {
Log.d(TAG, "lista==null");
ListProduktAdapter adapter = new ListProduktAdapter(Listan.this, lista);
ListView listView = (ListView) findViewById(R.id.listView);
Bundle produktInfo = getIntent().getExtras();
String name = produktInfo.getString("name").toString();
String allergen = produktInfo.getString("allergen").toString();
Produkt produkt = new Produkt(allergen, name);
Log.d(TAG, "gjort produkt");
lista.add(produkt);
listView.setAdapter(adapter);
}
else {
ListProduktAdapter adapter = new ListProduktAdapter(Listan.this, lista);
ListView listView = (ListView) findViewById(R.id.listView);
Bundle produktInfo = getIntent().getExtras();
String name = produktInfo.getString("name").toString();
String allergen = produktInfo.getString("allergen").toString();
Produkt produkt = new Produkt(allergen, name);
Log.d(TAG, "gjort produkt");
lista.add(produkt);
listView.setAdapter(adapter);
}
}
ここでもう一度やり直す方法です。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if(result != null) {
if(result.getContents() == null) {
Log.d(TAG, "Scanning Failed");
Toast.makeText(this, "Cancelled", Toast.LENGTH_LONG).show();
} else {
Log.d(TAG, "Scannad");
Toast.makeText(this, "Scanned: " + result.getContents(), Toast.LENGTH_LONG).show();
Intent i = new Intent(this, getXML.class);
i.putExtra("barCode", result.getContents());
i.putExtra("list", lista);
startActivity(i);
Log.d(TAG, "Going to new activity");
}
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
私が手にエラーが発生し、それがi.putExtra(「リスト」、リスタ)の「シンボル 『リスタ』を解決できない」ということです。解決「onActivityResult」
で :
私はmainactivityでオブジェクトを開始し、私はそれにデータを追加し始めるまで、空などの活動の流れを通過させることにより、問題を解決しました。
どのようなエラーが発生しますか? –
私はここで答えを確認し、それはあなたのケースで有用かもしれない[リンク](http://stackoverflow.com/questions/37878434/apart-from-intent-is-there-any-other-way-to-send -data-across-activities-in-andro/37878718#37878718)。 –
@VishalPatoliyaエラーは、onActivityResultでは、i.putExtraのときに "lista"を見つけることができません。 –