有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

安卓中的java简单选项卡活动

我正在尝试做的事情

enter image description here

早餐午餐晚餐分为不同种类。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发送到 选项卡启动的活动
  • 我知道tab的活动是无润滑的,我只是在学习
  • 如何解决这个问题,希望我很清楚

共 (1) 个答案

  1. # 1 楼答案

    spec = tabHost.newTabSpec("Starters").setIndicator("Starters").setContent(intent);
    spec = tabHost.newTabSpec("MAIN_COURSE").setIndicator("Main Course").setContent(intent);
    

    这里StartersMain Course是选项卡的标题。将此字符串发送到有界活动的最简单方法是通过绑定到相应活动的意图发送它们 禁忌

        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");
    }
    

    但正如拉古南丹所说,最好使用片段而不是去种族化的TabActivity

    编辑:

    如果您希望以友好方式向相应的活动发送文本,我的意思是在更改选项卡之后-您可以:

    1. 使用字符串创建并广播自定义意图(CUSTOM_INTENT_EXAMPLE)
    2. BLD_IndividualListOfItems_Starters活动寄存器BroadcastReciever中,它将捕获您的自定义意图并从中获取文本(BROADCAST_RECIEVER_FROM_ACTIVITY_EXAMPLE)

    您不能直接从BLD_IndividualListOfItems_Starters访问选项卡文本,因为TabActivityBLD_IndividualListOfItems_Starters是两个不同的活动。 但您可以通过捆绑包、静态字段、单例等在活动之间发送数据。这里是指向文档的链接 http://developer.android.com/guide/faq/framework.html#3