الروبوت 1.5 البرمجة مع TabHost وأزرار
-
21-08-2019 - |
سؤال
وأحاول حاليا من الروبوت 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)