Управление XML в виджете вкладок (Android) - PullRequest
0 голосов
/ 03 июня 2010

Я использую следующий код для настройки TabWidget:

 public void onCreate(Bundle savedInstanceState) {    
        super.onCreate(savedInstanceState);    
        setContentView(R.layout.main);    
        TabHost mTabHost = getTabHost();  

        mTabHost.addTab(mTabHost.newTabSpec("tab_1").setIndicator("Tab1", getResources().getDrawable(R.drawable.tab_1)).setContent(new Intent(this, TabClass1.class)));
        mTabHost.addTab(mTabHost.newTabSpec("tab_2").setIndicator("Tab2", getResources().getDrawable(R.drawable.tab_2)).setContent(new Intent(this, TabClass2.class)));      
        mTabHost.addTab(mTabHost.newTabSpec("tab_3").setIndicator("Tab3", getResources().getDrawable(R.drawable.tab_3)).setContent(new Intent(this, TabClass3.class)));        
        mTabHost.setCurrentTab(0);          
    }

Итак, TabClass1, TabClass2 и TabClass3 - это отдельные файлы .java, которые содержатся в моем пакете. Я могу создавать содержимое в каждом из этих файлов .java и отображать его при выборе каждой вкладки, но как мне назначить файл макета XML для каждого из файлов .java?

Я пробовал различные настройки, но не смог создать TextView в XML-макете и показать его при выборе конкретной вкладки.

1 Ответ

0 голосов
/ 03 июня 2010

хорошо, в вашем TabClass1.class у вас должно быть что-то вроде

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

ваш макет myContentA.xml должен быть похож на ...

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/layout"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
<TextView
        android:id="@+id/myTextView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"     
        android:ellipsize="marquee"
        android:singleLine="true"        
        android:textStyle="bold"
        android:textColor="#000000">
</LinearLayout>

вы будете повторно использовать этот макет xml в TabClass2.class и TabClass3.class или создадите myContentB.xml и myContentC.xml

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...