我对android中的意图和消息传递有点困惑。基本上我当前的困境:
当用户点击一行时,向用户显示一个显示动物列表的屏幕。一只老虎,有关这种动物的信息将显示在下一个屏幕/活动中。
我有很大程度上关注应用程序的框架,因此当用户从动物列表中选择它们时,它们将被带到Animal活动/类,但在此阶段它只是一个通用的模型。
如何告诉应用程序选择了TIGER,并向用户显示老虎数据。到目前为止我的方法
用户点击列表中的项目并调用活动:
protected void onListItemClick(ListView l, View v, int position, long id){
Intent animalIntent = new Intent(this, Animal.class);
startActivity(animalIntent);
}
答案 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)
答案 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);
希望这有帮助