在意图上传递ID

时间:2013-01-11 20:30:38

标签: java android

我正在尝试将点击数据的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);
}

有人能告诉我如何在第二节课中引用它吗?

4 个答案:

答案 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类方法的更多信息。