لا يمكن الحصول على طرق عرض مختلفة في علامات التبويب

StackOverflow https://stackoverflow.com/questions/1977110

  •  21-09-2019
  •  | 
  •  

سؤال

لديّ تطبيق يحتوي على علامات تبويب 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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top