【发布时间】:2016-07-06 11:47:34
【问题描述】:
我正在尝试将 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("list", lista); 上“无法解析符号 'lista'”; 关于“onActivityResult”
已解决:
我解决了这个问题,方法是在 mainactivity 中启动对象并将其作为空的活动流传递,直到我开始向它添加数据。
【问题讨论】:
-
发生了什么错误?
-
检查我在这里给出的答案,它可能对你的情况有用link。
-
@VishalPatoliya 错误是 onActivityResult 上 i.putExtra 时找不到“lista”。
-
@CoolGuyCG 试试看,谢谢:)
标签: android android-intent arraylist