2012-02-13 112 views
0
public class SampleTabActivity extends TabActivity implements OnClickListener{static TabHost tabHost; 

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

    tabHost = getTabHost(); // The activity TabHost 
    TabHost.TabSpec spec; // Reusable TabSpec for each tab 
    Intent intent; // Reusable Intent for each tab 
     //this is SampleTabActivity.java file 
    intent = new Intent().setClass(this, TabOne.class); 
    spec = tabHost.newTabSpec("tabOne"); 
    spec.setContent(intent); 
    spec.setIndicator("Tab One"); 
    tabHost.addTab(spec); 
    tabHost.getTabWidget().getChildAt(0).getLayoutParams().height = 40; 
    LinearLayout ll = (LinearLayout) tabHost.getChildAt(0); 
    android.widget.TabWidget tw = (android.widget.TabWidget) ll.getChildAt(0); 
    RelativeLayout rllf = (RelativeLayout) tw.getChildAt(0); 
    TextView lf = (TextView) rllf.getChildAt(1); 
    lf.setTextSize(20); 

    intent = new Intent().setClass(this, TabTwo.class); 
    spec = tabHost.newTabSpec("tabTwo"); 
    spec.setContent(intent); 
    spec.setIndicator("Tab Two"); 
    tabHost.addTab(spec); 
    tabHost.getTabWidget().getChildAt(1).getLayoutParams().height = 40; 
    RelativeLayout rlrf = (RelativeLayout) tw.getChildAt(1); 
    TextView rf = (TextView) rlrf.getChildAt(1); 
    rf.setTextSize(20); 

    intent = new Intent().setClass(this, TabThree.class); 
    spec = tabHost.newTabSpec("tabThree"); 
    spec.setContent(intent); 
    spec.setIndicator("Tab Three"); 
    tabHost.addTab(spec); 
    tabHost.getTabWidget().getChildAt(2).getLayoutParams().height = 40; 
    RelativeLayout rlrp = (RelativeLayout) tw.getChildAt(2); 
    TextView rp = (TextView) rlrp.getChildAt(1); 
    rp.setTextSize(20); 
    tabHost.setCurrentTab(0); 
}} 





public class TabOne extends ActivityGroup implements OnClickListener{ @Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.tabone); 
    TextView tv = new TextView(this); 
    tv.setText("This is tab One"); 
    //this is TabOne.java file 
    Button button = (Button)findViewById(R.id.button1); 
    button.setOnClickListener(this);  
} 

@Override 
public void onClick(View v) { 
    Intent intent = new Intent(this, TabTwo.class);   
    replaceContentView("TabTwo", intent); 
    setTab(1); 
} 

public void replaceContentView(String id, Intent newIntent) {  
    View view = getLocalActivityManager().startActivity(id,newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView(); 
    this.setContentView(view); 

    } 

public void setTab(int index){  
    SampleTabActivityActivity ParentActivity;  
    ParentActivity = (SampleTabActivityActivity) this.getParent();  
    ParentActivity.getTabHost().setCurrentTab(index); 
    } } 




public class TabTwo extends ActivityGroup implements OnClickListener{@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    TextView tv = new TextView(this); 
    tv.setText("This is tab Two"); 
    setContentView(tv); 
}} 


public class TabThree extends ActivityGroup implements OnClickListener{@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    TextView tv = new TextView(this); 
    tv.setText("This is tab Three"); 
    setContentView(R.layout.tabone); 
}} 

在这里,当我点击继续塔博恩按钮...它去标签Two..and显示文本“这是标签两个” ....但我当通过点击塔博恩选择塔博恩......内容丢失......Android-标签内容丢失

我不能再看到继续按钮......相反,我看到“这是标签两个” ......

请检查代码。 请一些人帮忙......需要做什么......我要去哪里错......?

回答

1

你的代码应该在onResume()方法中。如果activity不存在,onCreate()将被调用,随后的调用将由onResume()方法处理。请参阅此link中的活动生命周期。

+0

哪个代码写在onResume ... 哪个文件...?哪些代码? – prathameshr 2012-02-14 11:11:22

+0

你在onCreate()里面的逻辑也需要在onResume里面进行所有的活动。 – kosa 2012-02-14 15:10:25

0

您的onClick方法是硬编码的,每次点击按钮时它会转到选项卡两。