我正在尝试将点击数据的ID从我的listview传递到第二个类中的新活动,即我点击listview
上的项目。onListItemClick
方法被调用并启动一个新的意图。 id与i.getExtra
中的对象一起传递。然后将id存储到第二个类的新变量中,以便稍后使用。
我已经知道如何传递id,但我似乎无法解决如何将它存储在第二类的新变量中。
继承我的代码:
public void onListItemClick(ListView list, View v, int list_posistion, long item_id)
{
long id = item_id;
Intent i = new Intent("com.example.sqliteexample.SQLView");
i.putExtra(null, id);
startActivity(i);
}
有人能告诉我如何在第二节课中引用它吗?
答案 0 :(得分:0)
你需要从Intent获得Bundle,然后得到......来获得特定的元素。
Bundle extras = getIntent().getExtras();
String id;
if (extras != null) {
id= extras.getString("key"); //key should be what ever used in invoker.
}
令人惊讶的是,您使用null
作为关键字的原因是什么?我会避免使用保留字,而是使用正确的名称,如userID
等,
答案 1 :(得分:0)
Intent intent = new Intent("com.example.sqliteexample.SQLView");
Bundle bundle = new Bundle();
bundle.putString("position", v.getTag().toString());
intent.putExtras(bundle);
context.startActivity(intent);
在第二课
Bundle intent= getIntent().getExtras();
if (intent.getExtras() == null) {
id= intent.getString("position");
}
希望这有帮助
答案 2 :(得分:0)
非常简单 只需改变:
i.putExtra(null, id);
with:
i.putExtra("myId", id);
并在第二个Activity中使用:
Bundle extras = getIntent().getExtras();
if (extras != null) {
String value = extras.getInt("myId");
}
答案 3 :(得分:0)
Intent.putExtra()
的第一个参数是用于标识Extra的String键。而不是i.putExtra(null, id)
尝试i.putExtra("SomeString", id)
。
然后,在你的第二个活动的onCreate(或其中的任何地方),你可以从这个意图中恢复你的身份:
Intent intent = getIntent();
long id = intent.getLongExtra("SomeString");
还有获取字符串,字符,布尔值,Ints和更复杂数据结构的方法。请在此处查看:http://developer.android.com/reference/android/content/Intent.html以获取有关Intent类方法的更多信息。