意图消息传递混乱

时间:2011-04-07 18:14:29

标签: java android android-intent message

我对android中的意图和消息传递有点困惑。基本上我当前的困境:

当用户点击一行时,向用户显示一个显示动物列表的屏幕。一只老虎,有关这种动物的信息将显示在下一个屏幕/活动中。

我有很大程度上关注应用程序的框架,因此当用户从动物列表中选择它们时,它们将被带到Animal活动/类,但在此阶段它只是一个通用的模型。

如何告诉应用程序选择了TIGER,并向用户显示老虎数据。到目前为止我的方法

用户点击列表中的项目并调用活动:

protected void onListItemClick(ListView l, View v, int position, long id){
    Intent animalIntent = new Intent(this, Animal.class);
    startActivity(animalIntent);
}

4 个答案:

答案 0 :(得分:1)

要扩展@PhilLello,一旦使用Intent.setExtra(),您可以使用以下命令检索活动中的值:

string animal;
Bundle extras = this.getIntent().getExtras();
if (extras != null) {
    animal = extras.getString("animal");
}

答案 1 :(得分:1)

您可以向意图添加数据,因此在调用startActivity之前,您可以执行以下操作:

animalIntent.putExtra("myApp.chosenAnimal","Tiger");

您可以使用不同的数据类型代替上面的Tiger字符串,表示动物ID的整数,Tiger对象等。

现在在你的例子中,“Animal”类必须是一个活动,即处理意图后加载的活动。如果Animal只是一个POJO,你可能需要一个新的活动来展示你的特定动物。

进入Animal活动后,您可以使用以下命令检查传递的Intents的内容:

Intent incomingIntent = getIntent();
String selectedAnimal = incomingIntent.getStringExtra("myApp.chosenAnimal");

请注意,传入意图区域中的“myApp.chosenAnimal”与animalIntent中的匹配。

答案 2 :(得分:0)

您可以在触发意图之前使用Intent.setExtra(“动物”,“TIGER”)。

希望这有帮助,

Phil Lello

答案 3 :(得分:0)

之前我问过这个问题,发现以下内容适合我。在要发送数据的活动中输入以下内容。

Intent i = new Intent();
i.putExtra(KEY,String);
i.putExtra(KEY2,String);

如果您想接收此信息,请执行以下操作。

Bundle extras = getIntent().getExtras();
String temp = extras.getString(KEY);
String temp2 = extras.getString(KEY2);

希望这有帮助