需要修复android标签



我正在android中制作选项卡。目前,我的选项卡就是这样工作的。当我点击任何选项卡时,它都会带我进入相应选项卡的视图,这很好。但假设当我点击Profile选项卡时,在这个profile视图中有一个按钮Add New。当我点击Add New按钮时,它会将我带到它的视图,但它还会从视图中删除我不想要的选项卡那么,即使用户单击任何视图中的任何链接或按钮,我如何使选项卡始终可用?

这是我当前的代码

tabs.xml

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="5dp">
    <TabWidget
        android:id="@android:id/tabs"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true" />
    <FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:padding="5dp" />
</RelativeLayout>
</TabHost>

选项卡.java

public class Tabs extends TabActivity {
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tabs);
    Resources resources = getResources(); 
    TabHost tabHost = getTabHost();
    Intent startUseSaldo = new Intent().setClass(this, Usesaldo.class);
    TabSpec useSaldo = tabHost
      .newTabSpec("UseSaldo")
      .setIndicator("Use Saldo")
      .setContent(startUseSaldo);
    Intent startHistory = new Intent().setClass(this, History.class);
    TabSpec history = tabHost
      .newTabSpec("History")
      .setIndicator("History")
      .setContent(startHistory);
    Intent startProfile = new Intent().setClass(this, Profile.class);
    TabSpec profile = tabHost
      .newTabSpec("Profile")
      .setIndicator("Profile")
      .setContent(startProfile);
    // add all tabs 
    tabHost.addTab(useSaldo);
    tabHost.addTab(history);
    tabHost.addTab(profile);
    tabHost.setCurrentTab(1);
}
}

Profile.java

public class Profile extends Activity {
Button bAddNew;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.profile);
    bAddNew = (Button)findViewById(R.id.bAddNew);
    bAddNew.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent AddFacility = new Intent(getApplicationContext(), AddFacility.class);
            startActivity(AddFacility);
        }
    });
}
}

AddFacility.java

public class AddFacility extends Activity {
@Override
public void setContentView(int layoutResID) {
    // TODO Auto-generated method stub
    super.setContentView(R.layout.add_facility);
}
}

试试这个例子-http://gamma-point.com/content/android-how-have-multiple-activities-under-single-tab-tabactivity

您必须将ActivityGroup与Tabhost 一起使用

http://richipal.com/post/2624844577

但由于ActivityGroups是非盈利的,您应该将Fragments与Tabhost 一起使用

最新更新