例如,我有3个活动..当切换选项卡小部件时,我也使用带有单独活动的Tab主机。
1)FoodTypeListActivity.class
:有一份食物类型清单,即早餐,晚餐,午餐......
2)MainTabActivity.class
:Tabhost,它有3个标签小部件
3)FoodListActivity.class
:此活动是标签小部件之一
我在MainTabActivity.class
的布局中有一个标题,它会将食物类型显示为上一个活动的文本视图(FoodTypeListActivity.class
)
问题是; 我想从(FoodTypeListActivity.class
)发送食物类型的名称,在(MainTabActivity.class
)中设置为headlabel并发送食物类型的ID (FoodTypeListActivity.class
)到(FoodListActivity.class
)
如何实现putExtra将数据发送到ListItem上的不同活动点击FoodTypeListActivity.class
现在我在FoodTypeListActivity.class
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
if(position==0){
Intent i = new Intent(FoodTypeListActivity.this, MainTabActivity.class);
i.putExtra("foodTypeID", 3);
i.putExtra("foodTypeName", "Breakfast");
startActivity(i);
}
}
});
谢谢你
答案 0 :(得分:4)
您应该只使用共享偏好。
在列表视图中,单击使用此选项将值放在共享首选项中。
SharedPreferences items = getSharedPreferences("my_food_data", 0);
SharedPreferences.Editor editor = settings.edit();
editor.putInt("foodTypeID", 3);
editor.putString("foodTypeName", "Breakfast");
editor.commit(); //VERY important
现在在任何活动使用中拉出数据..
SharedPreferences items = getSharedPreferences("my_food_data", 0);
int foodId = settings.getInt("foodTypeId", 0);
String foodTitle = items.getString("foodTypeName", "No Name"); //the default value of of "no name will be used if nothing is in the preference file.
我认为这适用于你想要做的事情。
答案 1 :(得分:0)
看起来完全正确。现在,在您的接收活动中,只需使用以下代码来检索您的价值。
int foodTypeId = getIntent().getIntExtra("foodTypeID", -1);
String foodTypeName= getIntent().getStringExtra("foodTypeName");
如果给定键没有值,则-1是默认值。除非您忘记使用给定密钥传入值,否则永远不应该需要该默认值。