在android中显示所选选项卡的Toast消息

时间:2013-12-29 09:13:51

标签: android android-tabhost

我正在尝试在屏幕上显示Toast消息


MainActivity.java

public class MainActivity extends TabActivity {

    // TabSpec Names
        private static final String TAB1 = "Tab1";
        private static final String TAB2 = "Tab2";
        private static final String TAB3 = "Tab3";

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);

            TabHost tabHost = getTabHost();

            // Inbox Tab
            TabSpec inboxSpec = tabHost.newTabSpec(TAB1);
            Intent inboxIntent = new Intent(this, Tab1.class);
            inboxSpec.setIndicator(TAB1);
            // Tab Content
            inboxSpec.setContent(inboxIntent);

            // Outbox Tab
            TabSpec PriceSpec = tabHost.newTabSpec(TAB2);
            Intent PriceIntent = new Intent(this, Tab2.class);
            PriceSpec .setIndicator(TAB2);
            PriceSpec.setContent(PriceIntent);

            // Profile Tab
            TabSpec DistanceSpec = tabHost.newTabSpec(TAB3);
            Intent DistanceIntent = new Intent(this, Tab3.class);
            DistanceSpec .setIndicator(TAB3); 
            DistanceSpec.setContent(DistanceIntent);

            // Adding all TabSpec to TabHost
            tabHost.addTab(inboxSpec); 
            tabHost.addTab(PriceSpec); 
            tabHost.addTab(DistanceSpec); 

            //Set the current value tab to default first tab
            tabHost.setCurrentTab(0);

            //Setting custom height for the tabs
            final int height = 45;
            tabHost.getTabWidget().getChildAt(0).getLayoutParams().height = height;
            tabHost.getTabWidget().getChildAt(1).getLayoutParams().height = height;
            tabHost.getTabWidget().getChildAt(2).getLayoutParams().height = height;


        }
}

ScreenShot ::

enter image description here


我想做什么::

  • 显然,我们可以看到有三个标签Tab1Tab2Tab3
  • 当我点击Tab1时,我应该能够显示一个吐司,点击Tab1, 同样适用于Tab2& Tab3
  • 基本上我们可以根据选择位置看到toast消息 toast正在获取选项卡上的文本
  • 如何实现此目标

2 个答案:

答案 0 :(得分:1)

public class MainActivity extends TabActivity implements OnTabChangeListener {

// TabSpec Names
    private static final String TAB1 = "Tab1";
    private static final String TAB2 = "Tab2";
    private static final String TAB3 = "Tab3";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        TabHost tabHost = getTabHost();

        // Inbox Tab
        TabSpec inboxSpec = tabHost.newTabSpec(TAB1);
        Intent inboxIntent = new Intent(this, Tab1.class);
        inboxSpec.setIndicator(TAB1);
        // Tab Content
        inboxSpec.setContent(inboxIntent);

        // Outbox Tab
        TabSpec PriceSpec = tabHost.newTabSpec(TAB2);
        Intent PriceIntent = new Intent(this, Tab2.class);
        PriceSpec .setIndicator(TAB2);
        PriceSpec.setContent(PriceIntent);

        // Profile Tab
        TabSpec DistanceSpec = tabHost.newTabSpec(TAB3);
        Intent DistanceIntent = new Intent(this, Tab3.class);
        DistanceSpec .setIndicator(TAB3); 
        DistanceSpec.setContent(DistanceIntent);

        // Adding all TabSpec to TabHost
        tabHost.addTab(inboxSpec); 
        tabHost.addTab(PriceSpec); 
        tabHost.addTab(DistanceSpec); 
    tabHost.setOnTabChangedListener(this);

        //Set the current value tab to default first tab
        tabHost.setCurrentTab(0);

        //Setting custom height for the tabs
        final int height = 45;
        tabHost.getTabWidget().getChildAt(0).getLayoutParams().height = height;
        tabHost.getTabWidget().getChildAt(1).getLayoutParams().height = height;
        tabHost.getTabWidget().getChildAt(2).getLayoutParams().height = height;


    }
    @Override
public void onTabChanged(String arg0)
{
    // TODO Auto-generated method stub
    Toast.makeText(getApplicationContext(),arg0, Toast.LENGTH_LONG).show();

}

}

答案 1 :(得分:1)

您应该能够使用以下语法向片段活动添加Toast消息:

Toast.makeToast(getBaseActivity(), "Your Message Here", Toast.LENGTH_SHORT).show();

这种方式要求您向每个片段活动添加Toast消息。使用TabListener并在更改期间显示Toast消息会更容易。如果您不熟悉tablistener,可以从here查看开发人员文档。

如果您在识别tablistener时遇到问题,请发布您的代码。