J2EE程序员 2012-11-02 05:49 采纳率: 100%
浏览 3914
已采纳

Activity 跳转到 TabHost后 Tab标签页为空

// 情况描述 :  跳转后默认tab页面为空,切换下tab后,显示正常!!

public class ListContainActivity extends BaseActivity{

public static final String tag = "COOLSMILE_DEBUG";

private  TabHost tabHost ;

ContextTask contextTask ;

String mString="";

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE); 

    setContentView(R.layout.showcontain);

    ProgressRefresh();
}

private void InitUI(){  

        getIntentExtra();   // 得到Activity传递的信息

        Log.v(tag, "----------- InitUI start -----------");

        InitTabHost();
}

    private void InitTabHost(){

        Log.v(tag, "----------- InitTabHost start -----------");
        TabHost.TabSpec spec;  

        tabHost = (TabHost) findViewById(android.R.id.tabhost);
        tabHost.setup();

        spec=tabHost.newTabSpec("Refresh").setIndicator("Refresh").setContent(R.id.contain_tab0);
        tabHost.addTab(spec);  

        spec=tabHost.newTabSpec("Love").setIndicator("Love").setContent(R.id.contain_tab1);  
        tabHost.addTab(spec);  

        spec=tabHost.newTabSpec("Comment").setIndicator("Comment").setContent(R.id.contain_tab2);  
        tabHost.addTab(spec);  

        spec=tabHost.newTabSpec("Onward").setIndicator("Onward").setContent(R.id.contain_tab0);  
        tabHost.addTab(spec);  

        spec=tabHost.newTabSpec("Goback").setIndicator("Goback").setContent(R.id.contain_tab1); 
        tabHost.addTab(spec);  

        InitClickListener();
}
private void ProgressRefresh(){     

    Log.v(tag, "----------- progress_refresh start -----------");
    contextTask = new ContextTask(0);

    TaskHost taskHost = new TaskHost(){

        @Override
        public void onPreExecute(int requestCode) {
            // TODO Auto-generated method stub
            super.onPreExecute(requestCode);
            Log.v(tag, "----------- progress_refresh.onPreExecute() start -----------");
            InitUI();
        }

        @Override
        public void onPostExecute(int requestCode, String result) {
            // TODO Auto-generated method stub
            super.onPostExecute(requestCode, result);

            Log.v(tag, "----------- progress_refresh.onPostExecute() start -----------"+result);

            TextView txt = (TextView)findViewById(R.id.text_Result);
            txt.setText("DoInBackground Result :"+result);
            TextView txt1 = (TextView)findViewById(R.id.text_Refresh);
            txt1.setText("Hello my name is "+mString);
        }
    };
    contextTask.setTaskHost(taskHost);
    contextTask.setProgress(new SimpleDialogProgress(this,"正在获取数据..."));
    contextTask.execute();      
}



    private void InitClickListener(){

        Log.v(tag, "----------- InitClickListener start -----------");

        RadioGroup radioGroup=(RadioGroup) this.findViewById(R.id.main_tab);  
        radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {  

            @Override  
            public void onCheckedChanged(RadioGroup group, int checkedId) {  
                // TODO Auto-generated method stub  
                switch (checkedId) {  
                    case R.id.main_tab_addHome:
                        tabHost.setCurrentTabByTag("Refresh");  
                        break;
                    case R.id.main_tab_addExam:  
                        tabHost.setCurrentTabByTag("Love");  
                        break;  
                    case R.id.main_tab_myExam:  
                        tabHost.setCurrentTabByTag("Comment");  
                        break;  
                    case R.id.main_tab_message: 
                        tabHost.setCurrentTabByTag("Onward");  
                        break;  
                    case R.id.main_tab_settings:
                        tabHost.setCurrentTabByTag("Goback");  
                        break;  
                    default:  
                        tabHost.setCurrentTabByTag("Refresh");  
                        break;  
                    }  
            }  
        });             
    }

    private void getIntentExtra(){
        Intent intent = getIntent();
        mString = intent.getExtras().getString("PRESIDENTS_CONTENT");
    }

}

  • 写回答

2条回答

  • J2EE程序员 2012-11-02 08:55
    关注
        spec=tabHost.newTabSpec("Refresh").setIndicator("Refresh").setContent(R.id.contain_tab0);
        tabHost.addTab(spec);  
    
        spec=tabHost.newTabSpec("Love").setIndicator("Love").setContent(R.id.contain_tab1);  
        tabHost.addTab(spec);  
    
        spec=tabHost.newTabSpec("Comment").setIndicator("Comment").setContent(R.id.contain_tab2);  
        tabHost.addTab(spec);  
    
        spec=tabHost.newTabSpec("Onward").setIndicator("Onward").setContent(R.id.contain_tab0);  
        tabHost.addTab(spec);  
    
        spec=tabHost.newTabSpec("Goback").setIndicator("Goback").setContent(R.id.contain_tab1); 
        tabHost.addTab(spec);  
    

    问题就出现在这串代码里, 里面的TAG 与 setContent(R.id.contain_tab1);
    不是一一对应的关系 , 原以为只要TAG值唯一就行了!..犯错了!!
    之前为了图方便, 只在XML里写了3个tab 复用了2个tab用来测试,结果调了1天 ,,我靠靠靠靠靠,太悲剧了!!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog