لا يمكن الحصول على طرق عرض مختلفة في علامات التبويب
سؤال
لديّ تطبيق يحتوي على علامات تبويب 2 ، الأول هو ListView ، والثاني أحاول إنشاء 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);
}
}
كيف يمكنني إصلاحه بحيث تبرز علامة التبويب الثانية نص المثال؟ شكرًا!
المحلول
إذا فهمت بشكل صحيح ، فأنت تريد عرض نشاط 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 في ملف التخطيط الخاص بك. لذلك ربما يكون من الأفضل عدم تعيين النشاط كمحتوى علامة تبويب ولكن لتغيير قيمة عرض النص من ملف التخطيط الخاص بك.
ملاحظة. تذكر أن تضع نشاط helloandroid الخاص بك على animest.xml