我想做什么 ::
BreakfastLunchDinnerIndividualListOfItems.java
public class BreakfastLunchDinnerIndividualListOfItems extends TabActivity implements OnTabChangeListener{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.breakfast_lunch_dinner_individual_list_of_items);
Resources res = getResources(); // Resource object to get Drawables
TabHost tabHost = getTabHost(); // The activity TabHost
TabHost.TabSpec spec; // Reusable TabSpec for each tab
Intent intent; // Reusable Intent for each tab
String REST = getTabHost().toString();
// Create an Intent to launch an Activity for the tab (to be reused)
intent = new Intent().setClass(this, BLD_IndividualListOfItems_Starters.class);
//intent.putExtra("Starters", REST);
spec = tabHost.newTabSpec("Starters").setIndicator("Starters").setContent(intent);
tabHost.addTab(spec);
// Do the same for the other tabs
intent = new Intent().setClass(this, BLD_IndividualListOfItems_MainCourse.class);
//intent.putExtra("MainCourse", REST);
spec = tabHost.newTabSpec("MAIN_COURSE").setIndicator("Main Course").setContent(intent);
tabHost.addTab(spec);
}
public void onTabChanged(String arg0)
{
// TODO Auto-generated method stub
//Toast.makeText(getApplicationContext(),arg0, Toast.LENGTH_LONG).show();
}
}
String REST = getTabHost().toString();
问题就是这样
点击标签我无法发送特定tabtext
选项卡启动的活动答案 0 :(得分:2)
spec = tabHost.newTabSpec("Starters").setIndicator("Starters").setContent(intent);
spec = tabHost.newTabSpec("MAIN_COURSE").setIndicator("Main Course").setContent(intent);
此处Starters
和Main Course
是标签的标题。将这些字符串发送到有界活动的最简单方法是将它们发送到有意义的意图
tabSpecs。
String TAB_TITLE="Starters";
Intent intent = new Intent().setClass(this, BLD_IndividualListOfItems_Starters.class);
Bundle bundle =new Bundle();
bundle.putString("key_title", TAB_TITLE);
intent.putExtras(bundle);
spec = tabHost.newTabSpec("Starters").setIndicator(TAB_TITLE).setContent(intent);
tabHost.addTab(spec);
以下是您在BLD_IndividualListOfItems_Starters
活动中获取此字符串的方法:
protected void onCreate(Bundle savedInstanceState) {
...
String title=getIntent().getExtras().getString("key_title");
}
但正如Raghunandan所说,最好使用片段而不是被剥夺TabActivity
。
编辑:
如果你想以文字形式向相应的活动发送文字,我的意思是在标签改变之后 - 你可以:
BLD_IndividualListOfItems_Starters
活动注册BroadcastReciever
中,它会抓住您的自定义意图并从中获取文字。 (BROADCAST_RECIEVER_FROM_ACTIVITY_EXAMPLE) 您无法直接访问BLD_IndividualListOfItems_Starters
中的标签文字,因为TabActivity
和BLD_IndividualListOfItems_Starters
是两种不同的活动。
但是你可以通过包,静态字段,单例等在活动之间发送数据。这里是docs的链接
http://developer.android.com/guide/faq/framework.html#3