我设法将数据从列表活动传递到另一个活动。但是,从第二个活动到第三个活动,我怀疑我可以传递与应用程序崩溃相同的数据,当它进入第三个时。是不是可以从第1个活动开始发送相同的数据,或者行中有什么问题吗?
这是第一个活动
ListView lv = getListView();
// on selecting single product
// launching Edit Shops Screen
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// getting values from selected ListItem
String sid = ((TextView) view.findViewById(R.id.sid)).getText()
.toString();
// Starting new intent
Intent in = new Intent(getApplicationContext(), ShopPage.class);
// sending sid to next activity
in.putExtra(TAG_SID, sid);
// starting new activity and expecting some response back
startActivity(in);
}
});
这是第二项活动:
// getting shop details from intent
Intent i = getIntent();
// getting shop id (sid) from intent
sid = i.getStringExtra(TAG_SID);
editButton.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
sid = ((TextView) v.findViewById(R.id.sid)).getText()
.toString();
// Starting new intent
Intent e = new Intent(getApplicationContext(),
EditShopPage.class);
// sending sid to next activity
e.putExtra(TAG_SID, sid);
startActivity (e);
}
});
这是第三项活动:
// getting shop details from intent
Intent i = getIntent();
// getting shop id (sid) from intent
sid = i.getStringExtra(TAG_SID);
第一个活动来自ListView活动,其中数据通过onItemClickListener传递。然后第二个活动接收,但通过onClick(一个按钮)传递到下一个活动。在此之后,应用程序才停止运行。
答案 0 :(得分:0)
如果没有日志,我无法查看错误的来源。大多数情况下,当我必须将一个简单的变量(如String)从一个活动传递到另一个活动时,我会使用此代码。我希望它能有所帮助。
第一项活动:
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
Bundle bundleF = new Bundle();
bundleF.putString("type", NOTIF);
intent.putExtras(bundleF);
startActivity(intent);
第二项活动:
getIntent().getExtras().getString("type")
答案 1 :(得分:0)
在第二个活动中: 删除下面的代码,因为你已经有来自第一个Activity的sid。
sid = ((TextView) v.findViewById(R.id.sid)).getText()
.toString();
在你已经完成的Intent中从sid
添加i.getStringExtra(TAG_SID);
。如果您的IDE显示任何make sid
变量final或将其声明为Activity成员变量。
希望它会有所帮助。