Не могу получить разные представления во вкладках

1

У меня есть приложение с двумя вкладками, первое - списком, а второе я пытаюсь создать TextView. Проблема в том, что я понятия не имею, как получить TextView. Listview работает, но я ничего не могу получить в TextView. Я попытался использовать Hello, World, чтобы попытаться работать с текстом на вкладке, но я не могу понять это.

Раздел main.xml с TabWidget выглядит следующим образом:

    <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />
        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
            <ListView
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:id="@+id/itemlist" />
            <TextView 
                android:id="@+id/HelloAndroid"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"/>
        </FrameLayout>

ListView используется в java файле с кодом mTabHost,

        TabHost mTabHost = getTabHost();

    mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator("Answer").setContent(R.id.itemlist));
    mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator("Ask").setContent(R.id.HelloAndroid));

    mTabHost.setCurrentTab(0);
}

TextView находится в другом файле HelloAndroid.java, и код выглядит так:

public class HelloAndroid extends Activity {
   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       TextView tv = new TextView(this);
       tv.setText("Hello, Android");
       setContentView(tv);
   }
}

Как я могу его исправить, чтобы вторая вкладка отображала текст примера? Спасибо!

Теги:
textview
tabwidget

1 ответ

2
Лучший ответ

Если я правильно понял, вы хотите отобразить активность HelloAndroid как содержимое второй вкладки. Если я прав, вместо этого:


    mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator("Ask").setContent(R.id.HelloAndroid));
 

вы должны называть это:


 Intent i = new Intent(this, HelloAndroid.class);
 mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator("Ask").setContent(i));
 

Но вы должны помнить, что ваша активность HelloAndroid не имеет ничего общего с TextView в вашем файле макета.  Поэтому, вероятно, было бы лучше не устанавливать активность как содержимое вкладки, а изменять значение текстового представления из вашего файла макета.

PS. Не забудьте поместить вашу активность HelloAndroid в Manifest.xml

  • 0
    Это сработало, спасибо большое!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню