Вопрос

В настоящее время я тестирую Android 1.5 SDK, и я видел пару примеров на TabHost.То, что я пытаюсь сделать, это использовать разные кнопки на каждой вкладке для выполнения своих задач.

Что я пробовал , так это использовать onClickListiner() и onClick().Я думаю, что это то, что используют все разработчики, но я продолжаю получать нулевое исключение в LogCat каждый раз, когда нажимается кнопка.Кроме того, у меня есть каждый XML-макет, поэтому я вызываю вкладку следующим образом :tab.добавить(...setContent(R.id.firstTabLayout))

firstTabLayout = layout for Button and TextView.

Каков был бы наилучший способ заставить кнопку / TextView работать должным образом под TabHost?

Это было полезно?

Решение

Я не совсем уверен, в чем заключается ваша проблема, но именно так я настраивал свои действия с вкладками раньше

layout.xml

<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">

    <LinearLayout android:id="@+id/tab1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <TextView android:id="@android:id/text"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />

    </LinearLayout>
    <LinearLayout android:id="@+id/tab2"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <TextView android:id="@android:id/text"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />

    </LinearLayout>
    <LinearLayout android:id="@+id/tab3"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <TextView android:id="@android:id/text"
            android:layout_width="fill_parent"
                android:layout_height="wrap_content" />

    </LinearLayout>
</FrameLayout>

Tab.java

public class InitialActivity extends TabActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout);

        TabHost th = getTabHost();
        th.addTab(th.newTabSpec("tab_1").setIndicator("Tab1").setContent(R.id.tab1));
        th.addTab(th.newTabSpec("tab_2").setIndicator("Tab2").setContent(R.id.tab2));
        th.addTab(th.newTabSpec("tab_3").setIndicator("Tab3").setContent(R.id.tab3));
    }
}

Затем вы можете просто использовать findViewById() для любых представлений на вкладках, или, если между ними есть общие имена, вы можете сделать findViewById(R.id.tab1).findViewById(R.id.text)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top