Android меняет вкладку на tab3, но содержимое отображается так же, как tab1

#android #sqlite

#Android #sqlite

Вопрос:

Я хочу загрузить tab3 при загрузке, но он загружает tab3 с содержимым tab1. ниже приведен код, который я создаю для загрузки 3 вкладок, и я хочу, чтобы tab3 загружался на 1-й.

 package sh.mkt;

import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;

public class thirdtab extends TabActivity {

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

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

TabSpec firstTabSpec = tabHost.newTabSpec("tid1");
TabSpec secondTabSpec = tabHost.newTabSpec("tid2");
TabSpec thiredTabSpec = tabHost.newTabSpec("tid3");

firstTabSpec.setIndicator("Buying Cost").setContent(new Intent(this,tab1.class));
secondTabSpec.setIndicator("Selling Cost").setContent(new Intent(this,tab2.class));
thiredTabSpec.setIndicator("Portfolio").setContent(new Intent(this,tab3.class));

tabHost.addTab(firstTabSpec);
tabHost.addTab(secondTabSpec);
tabHost.addTab(thiredTabSpec);
tabHost.getTabWidget().setCurrentTab(2);
}
}
  

xml

 <?xml version="1.0" encoding="utf-8"?>
    <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">  
        <LinearLayout  
            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="match_parent" android:layout_height="wrap_content"
                android:layout_gravity="center" 
                android:gravity="center" 
                android:orientation="horizontal"
                android:layout_alignParentBottom="true"/>  
            <FrameLayout  
                android:id="@android:id/tabcontent"  
                android:layout_width="fill_parent"  
                android:layout_height="fill_parent"  
                android:padding="5dp"/>  
        </LinearLayout>  
    </TabHost>  
  

Комментарии:

1. изменено, проблема все та же

2. TabSpec firstTabSpec = TabHost.newTabSpec(«tid1»); TabSpec secondTabSpec = TabHost.newTabSpec («tid2»); TabSpec thiredTabSpec = TabHost.newTabSpec(«tid3»); это то, что вы говорите правильно?

3. да, но вы все равно можете использовать tid1 во всех … просто перейдите по ссылке, которую они привели в качестве рабочего примера … я думаю, вы могли ошибиться во всех ваших 3-х разных классах Java..

Ответ №1:

Во всех трех, которые вы установили, может быть проблема с tid1…. Вы можете сослаться на это

по пробной причине, если вы сохранили все классы одинаковыми, чем взгляните на их XML, возможно, вы забыли изменить его setcontentview().

ИДЕАЛЬНОЕ РЕШЕНИЕ:

ПРОСТО ИСПОЛЬЗУЙТЕ:

TabHost.setCurrentTab(2);

вместо вашего (TabHost.getTabWidget().setCurrentTab(2);)

приветствую!!!!!

Комментарии:

1. я изменил это также на tid1, tid2, tid3, но все равно это то же самое. он загружает tab3, но показывает содержимое tab1

Ответ №2:

возможно, вы создаете демонстрацию, подобную этому примеру, тогда я сомневаюсь, что вы написали 3 разных файла Java для отображения на каждой вкладке. Пожалуйста, перейдите по ссылке один раз.