2011-03-31 66 views
1

TabActivity中的问题 我的应用程序中有三个选项卡,每个选项卡都是不同的活动。 在第一个选项卡中我有一个textfield和listview,通过它用户搜索 但是在搜索之后,当用户更改了选项卡并再次返回到 搜索选项卡,然后列表和文本框被清除。TabActivity销毁选项卡更改时每个选项卡的活动

但我仍想填充。 什么标签栏与活动销毁?停止?暂停?我不知道 有没有办法做到这一点 谢谢。

public class MainTab extends TabActivity { 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.tab); 
     TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost);    

     TabSpec firstTabSpec = tabHost.newTabSpec("tid1"); 
     TabSpec secondTabSpec = tabHost.newTabSpec("tid1"); 
     TabSpec thirdTabSpec = tabHost.newTabSpec("tid1"); 

     /* TabSpec setIndicator() is used to set name for the tab. */ 
     /* TabSpec setContent() is used to set content for a particular tab. */ 
     firstTabSpec.setIndicator("",getResources().getDrawable(R.drawable.search)).setContent(new Intent(this,Search.class)); 
     secondTabSpec.setIndicator("",getResources().getDrawable(R.drawable.manager)).setContent(new Intent(this,Manager.class)); 
     thirdTabSpec.setIndicator("",getResources().getDrawable(R.drawable.settings)).setContent(new Intent(this,Settings.class)); 

     tabHost.addTab(firstTabSpec); 
     tabHost.addTab(secondTabSpec); 
     tabHost.addTab(thirdTabSpec); 
………………… 

按要求正常的TabBar的代码是一样的.... 这将是困难的,如果我们手动保存每一个类的实例我在活动

+0

上[活性生命周期]读取了(HTTP://下发展r.android.com/reference/android/app/Activity.html#ActivityLifecycle)和[Saving Persistent State](http://developer.android.com/reference/android/app/Activity.html#SavingPersistentState) – rajath 2011-03-31 16:09:27

+0

在TabActivity当选项卡更改之前的活动暂停时。即onPause()方法被调用。显示你的代码。 – Vivek 2011-03-31 16:10:24

+0

当用户在edittext中编写文本时,我有一个Edittextbox和Listview,然后单击按钮搜索,然后填充列表,如果用户单击另一个选项卡并返回,则同时清除edittext和listview。为什么他们不保存那里的实例????????? – user632576 2011-03-31 16:33:06

回答

5

有大量的数据替换您如下代码,

TabSpec firstTabSpec = tabHost.newTabSpec("tid1"); 
TabSpec secondTabSpec = tabHost.newTabSpec("tid1"); 
TabSpec thirdTabSpec = tabHost.newTabSpec("tid1"); 

与这些,

TabSpec firstTabSpec = tabHost.newTabSpec("tid1"); 
TabSpec secondTabSpec = tabHost.newTabSpec("tid2"); 
TabSpec thirdTabSpec = tabHost.newTabSpec("tid3"); 
+1

我的同事和我需要一分钟才能看到差异。为了他人的利益:第一,所有3个规格使用“tid1” – kaay 2012-11-09 14:23:01

相关问题