1

我正在尝试将单击的数据的 ID 从我的列表视图传递给第二个类中的新活动,即我单击 . 上的项目。listviewonListItemClick方法被调用并开始一个新的意图。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

4 回答 4

0

您需要从 Intent 获取 Bundle ,然后执行 get... 以获取特定元素。

Bundle extras = getIntent().getExtras(); 
String id;

if (extras != null) {
    id= extras.getString("key");  //key should be what ever used in invoker.
}

令人惊讶的一件事是为什么您使用nullas key?我会避免使用保留词,而是使用专有名称userID等,

于 2013-01-11T20:32:37.083 回答
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");
    }

希望这可以帮助

于 2013-01-11T20:33:34.350 回答
0

这很简单。
只是改变 :

i.putExtra(null, id);

和 :

i.putExtra("myId", id);

在第二个活动中只需使用:

Bundle extras = getIntent().getExtras();
if (extras != null) {
    String value = extras.getInt("myId");
}
于 2013-01-11T20:37:11.270 回答
0

第一个参数Intent.putExtra()是用于标识您的 Extra 的字符串键。而不是i.putExtra(null, id)尝试i.putExtra("SomeString", id)

然后,在您的第二个活动(或其中的任何位置)的 onCreate 中,您可以从意图中获取您的 id,如下所示:

Intent intent = getIntent();
long id = intent.getLongExtra("SomeString");

还有一些方法可以获取字符串、字符、布尔值、整数和更复杂的数据结构。在此处查看:http: //developer.android.com/reference/android/content/Intent.html以获取有关 Intent 类方法的更多信息。

于 2013-01-11T20:38:12.373 回答