现在写的TabHost只继承的Activity,并且能正常显示出TabHost的数量,然后下面是ListView,但是现在点击其他的TabHost没有反应,只能显示第一个TabHost下的ListView,请问是不是要捆绑个监听器,或者根据Map来对应键值.高手们帮帮忙吧,感谢啊,现在项目就卡在这了Android TabHost

解决方案 »

  1.   

    你没有继承TabActivity ?继承这个,然后在代码中得到TabHost: getTabHost(); 然后再使用tabHost.addTab(xx);里面是你要显示的activity,是不需要额外添加事件的。希望能帮到楼主,不懂再问。
      

  2.   

    现在没有继承TabActivity,在代码中有一行TabHost th = (TabHost) findViewById(R.id.tabhost); 得到Tabhost,现在是想给TabHost加上一个监听,来判断我点击的位置,然后从点击位置的tabhost来传递一个参数给下面的listview,现在就是不知道怎么判断点击的位置
      

  3.   

    我记得有个setOnTabClickListener事件 取得TabHost对象 重写setOnTabChangedListener中的  onTabChanged(String tabId)方法 我也记卜太清楚啦 你可以试下  
      

  4.   

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    topBar1=new PopupTool();
    setContentView(R.layout.second);
    manager = new LocalActivityManager(this, true);
    manager.dispatchCreate(savedInstanceState); tabHost = (TabHost) findViewById(R.id.tabhost);

    tabHost.setup();
    tabHost.setup(manager);

    context = SecondActivity.this;

    pager  = (ViewPager) findViewById(R.id.viewpager);

    listViews = new ArrayList<View>();

    Intent i1 = new Intent(context, MyDoc.class);
    listViews.add(getView("MyDoc", i1));
    Intent i2 = new Intent(context, FindDoc.class);
    listViews.add(getView("FindDoc", i2));


    RelativeLayout tabIndicator1 = (RelativeLayout) LayoutInflater.from(this).inflate(R.layout.tabwidget, null);  
    TextView tvTab1 = (TextView)tabIndicator1.findViewById(R.id.tv_title);
    tvTab1.setText(R.string.mydocer);
    tvTab1.setOnClickListener(new MyOnClickListener(0));

    RelativeLayout tabIndicator2 = (RelativeLayout) LayoutInflater.from(this).inflate(R.layout.tabwidget,null);  
    TextView tvTab2 = (TextView)tabIndicator2.findViewById(R.id.tv_title);
    tvTab2.setText(R.string.finddoc);
    tvTab2.setOnClickListener(new MyOnClickListener(1));

    tabHost.addTab(tabHost.newTabSpec("A").setIndicator(tabIndicator1).setContent(i1));
    tabHost.addTab(tabHost.newTabSpec("B").setIndicator(tabIndicator2).setContent(i2));


    tabHost.setOnTabChangedListener(new OnTabChangeListener() {
    @Override
    public void onTabChanged(String tabId) {
     tabHost.setOnTabChangedListener(new OnTabChangeListener() {
                @Override
                public void onTabChanged(String tabId) {
                    if ("A".equals(tabId)) {
                     Log.d("setOnTabChangedListener", "setOnTabChangedListener" );
                    
                        pager.setCurrentItem(0);
                                           
                    } 
                    if ("B".equals(tabId)) {
                        pager.setCurrentItem(1);
                                                              
                    } 
                    
                }
            });

    }
    });
      

  5.   


    十分的感谢啊,贴出了这么详细的代码,再麻烦问一下,我现在是做的是数量不是固定的TabHost,根据每个客户指定的需求也不一样,这样public void onTabChanged(String tabId)  方法内该怎么对应这个tabid,