android tabwidget中的onClick事件

时间:2013-09-07 09:44:04

标签: android android-tabhost onclicklistener

我正在使用tabview。我的tabwidget视图中有3个选项卡。下面是我的MainActivity.java

public class MainActivity extends Activity {
TabHost host;
Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Resources res = getResources();
    host = (TabHost) findViewById (R.id.tabhost);
    host.setup();

    TabSpec tspecMovies = host.newTabSpec("tag1");
    // tspecMovies.setContent(R.id.tab1);
    tspecMovies.setIndicator("Movies", res.getDrawable(R.drawable.movie_icon));
    host.addTab(tspecMovies);

    TabSpec tspecTv = host.newTabSpec("tag2");
    // tspecTv.setContent(R.id.tab2);
    tspecTv.setIndicator("TV",  res.getDrawable(R.drawable.tv_icon));
    host.addTab(tspecTv);

    TabSpec tspecEvents = host.newTabSpec("tag3");
    // tspecEvents.setContent(R.id.tab3);
    tspecEvents.setIndicator("Events",  res.getDrawable(R.drawable.event_icon));
    host.addTab(tspecEvents);


    }

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
   }
}

对于包含标签内容的每个标签,我有3个不同的活动。我想知道在单击选项卡时如何在onClick事件上调用这些活动。

3 个答案:

答案 0 :(得分:0)

找到以下代码。

    host.setOnTabChangedListener(new OnTabChangeListener() {

                @Override
                public void onTabChanged(String tabId) {

                    if(getString(R.string.tab1).equals(tabId)){

                        //your activity 1
                        // R.string.tab1 is the Id given to tab using values/string.xml file

                    }else if(getString(R.string.tab2).equals(tabId)){

                        // your activity 2
                    }
                }
   }

答案 1 :(得分:0)

您必须为每个标签设置意图..

使用此代码

// Android tab                                      //activity which you want to call  
Intent intentAndroid = new Intent().setClass(this, AndroidActivity.class);
TabSpec tabSpecAndroid = tabHost
      .newTabSpec("Android")
      .setIndicator("", ressources.getDrawable(R.drawable.icon_android_config))
      .setContent(intentAndroid);

了解更多信息Complete Tutorial

答案 2 :(得分:0)

您必须使用意图

传递制表符
TabSpec tspecMovies = host.newTabSpec("tag1");
    // tspecMovies.setContent(R.id.tab1);
    tspecMovies.setIndicator("Movies", res.getDrawable(R.drawable.movie_icon));
    host.addTab(tspecMovies)
   Intent moviesintent=new Intent(this, MoviesActivity.class);
   moviesintent.setContent(videosIntent);

您可以参考此tutorial

我希望你能学得很好。