سؤال

وأحاول حاليا من الروبوت 1.5 SDK ولقد رأيت بضعة أمثلة على TabHost. ما أحاول القيام به هو استخدام زر مختلف على كل تبويب للقيام بمهامها.

ما حاولت كان يستخدم onClickListiner () وعند _ النقر (). وأعتقد أن هذا هو ما استخدام جميع المطورين، ولكن أظل الحصول على استثناء فارغة على LogCat كل مرة يتم فيها الضغط على الزر. أيضا لدي كل تخطيط XML ذلك أدعو تبويب النحو التالي: tab.add (... 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