TabHost ठीक से लोड नहीं हो रहा है?

मुझे मेरी TabHost गतिविधि में कोई समस्या होने पर समस्या ठीक से लोड नहीं हो रही है। यहां मेरा कोड, एक्सएमएल, और त्रुटि लॉग है:

public class TabScreen extends TabActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_tab_screen);

    TabHost t = getTabHost();
    TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost);


    //For New Photos
    TabSpec newSpec = tabHost.newTabSpec("NewPhoto");
    newSpec.setIndicator("NewPhoto", getResources().getDrawable(R.drawable.ic_tab_newphoto));
    Intent phNewIntent = new Intent(this, NewPhoto.class);
    newSpec.setContent(phNewIntent);
    //For List of Taken Photos
    TabSpec listSpec = tabHost.newTabSpec("PhotoList");
    listSpec.setIndicator("PhotoList", getResources().getDrawable(R.drawable.ic_tab_photolist));
    Intent phListIntent = new Intent(this, PhotoList.class);
    listSpec.setContent(phListIntent);
    //For Map
    TabSpec mapSpec = tabHost.newTabSpec("PhotoMap");
    mapSpec.setIndicator("PhotoMap", getResources().getDrawable(R.drawable.ic_tab_photomap));
    Intent phMapIntent = new Intent(this, PhotoMap.class);
    mapSpec.setContent(phMapIntent);

    tabHost.addTab(newSpec);
    tabHost.addTab(listSpec);
    tabHost.addTab(mapSpec);
}


}

और मेरा एक्सएमएल:

<?xml version="1.0" encoding="utf-8"?>




    
    


और आखिरकार, मेरे त्रुटि संदेश: (एक लंबी सूची थी, लेकिन मुख्य समस्या यह है कि मैं समस्या मानता हूं जो मैं चिपक रहा हूं)

12-02 16:00:06.250: E/AndroidRuntime(3757): FATAL EXCEPTION: main
12-02 16:00:06.250: E/AndroidRuntime(3757): java.lang.RuntimeException: Unable to start         activity ComponentInfo{edu.wcu.snipsnaps/edu.wcu.snipsnaps.TabScreen}:     java.lang.RuntimeException: Unable to start activity     ComponentInfo{edu.wcu.snipsnaps/edu.wcu.snipsnaps.NewPhoto}: java.lang.RuntimeException:     Your content must have a TabHost whose id attribute is 'android.R.id.tabhost'

इस समस्या के बारे में इस वेबसाइट पर कई प्रविष्टियां हैं, लेकिन हर किसी को देखने के बाद, समाधानों में से कोई भी काम नहीं करता है। मेरे एक्सएमएल में उचित @android: id/tabhost है, और मैंने अपनी आरजेजा फ़ाइल हटा दी और पूरी परियोजना को कई बार साफ कर दिया। अगर इससे मदद मिलती है, जब मैं कुछ डिबगिंग कर रहा था, तो वह जगह जहां एप्लिकेशन अलग हो गया था tabHost.addTab (newSpec); पर था। किसी को पता है क्या हो रहा है?

संपादित करें: पूर्ण त्रुटि लॉग:

12-02 17:02:43.296: E/AndroidRuntime(8121): java.lang.RuntimeException: Unable to start activity ComponentInfo{edu.wcu.snipsnaps/edu.wcu.snipsnaps.TabScreen}:     java.lang.RuntimeException: Your content must have a TabHost whose id attribute is     'android.R.id.tabhost'
12-02 17:02:43.296: E/AndroidRuntime(8121):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
12-02 17:02:43.296: E/AndroidRuntime(8121):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
12-02 17:02:43.296: E/AndroidRuntime(8121):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
12-02 17:02:43.296: E/AndroidRuntime(8121):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
12-02 17:02:43.296: E/AndroidRuntime(8121):     at android.os.Handler.dispatchMessage(Handler.java:99)
12-02 17:02:43.296: E/AndroidRuntime(8121):     at android.os.Looper.loop(Looper.java:130)
12-02 17:02:43.296: E/AndroidRuntime(8121):     at android.app.ActivityThread.main(ActivityThread.java:3687)
12-02 17:02:43.296: E/AndroidRuntime(8121):     at java.lang.reflect.Method.invokeNative(Native Method)
12-02 17:02:43.296: E/AndroidRuntime(8121):     at java.lang.reflect.Method.invoke(Method.java:507)
12-02 17:02:43.296: E/AndroidRuntime(8121):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
12-02 17:02:43.296: E/AndroidRuntime(8121):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
12-02 17:02:43.296: E/AndroidRuntime(8121):     at dalvik.system.NativeStart.main(Native Method)
12-02 17:02:43.296: E/AndroidRuntime(8121): Caused by: java.lang.RuntimeException: Your content must have a TabHost whose id attribute is 'android.R.id.tabhost'
12-02 17:02:43.296: E/AndroidRuntime(8121):     at android.app.TabActivity.onContentChanged(TabActivity.java:105)
12-02 17:02:43.296: E/AndroidRuntime(8121):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:212)
12-02 17:02:43.296: E/AndroidRuntime(8121):     at android.app.Activity.setContentView(Activity.java:1657)
12-02 17:02:43.296: E/AndroidRuntime(8121):     at edu.wcu.snipsnaps.TabScreen.onCreate(TabScreen.java:16)
12-02 17:02:43.296: E/AndroidRuntime(8121):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
12-02 17:02:43.296: E/AndroidRuntime(8121):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
12-02 17:02:43.296: E/AndroidRuntime(8121):     ... 11 more
0

2 उत्तर

मैं यह समझ गया - -

मैं टैब में प्रदर्शित होने के लिए अपने सभी वर्गों में टैबएक्टिविटी को सही ढंग से विस्तारित नहीं कर रहा था।

सहायता के लिए धन्यवाद!!

0
जोड़ा

कोड में इसे आज़माएं

TabHost tabHost = (TabHost)findViewById(R.id.tabhost);

के बजाय :

TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost);

एक्सएमएल में:

<?xml version="1.0" encoding="utf-8"?>

के बजाय

<?xml version="1.0" encoding="utf-8"?>

भी हो सकता है कि आपको एंड्रॉइड से दृश्यों में सभी आईडी को बदलने की आवश्यकता हो: आईडी = "@ एंड्रॉइड: आईडी ...." एंड्रॉइड की तरह: id = "@ + id/.....", @android एंड्रॉइड डिफ़ॉल्ट के लिए आरक्षित है तत्वों

सहायता के लिए लिंक http://www.androidhive.info/2011/08/android-टैब-लेआउट-ट्यूटोरियल/

0
जोड़ा
काम नहीं किया ... मुझे अभी भी एक ही त्रुटि संदेश मिला है: /
जोड़ा लेखक user2751164, स्रोत
मुझे समझ में नहीं आता कि क्या हो रहा है ... इस लिंक के अनुसार आपने मुझे दिया है, मेरा कोड उस आदमी का कोड बहुत अधिक है, और यह अभी भी काम नहीं कर रहा है।
जोड़ा लेखक user2751164, स्रोत
हां महोदय, मैंने इसे @ + आईडी में बदल दिया और मैंने कोड को = (TabHost) में बदल दिया ViewById (R.id.tabhost);
जोड़ा लेखक user2751164, स्रोत
कोई पासा नहीं :( अगर मैंने मदद की है, तो मैंने पोस्ट में एक पूर्ण त्रुटि लॉग जोड़ा है।
जोड़ा लेखक user2751164, स्रोत
हो सकता है कि आपको एंड्रॉइड से दृश्यों में सभी आईडी को बदलने की आवश्यकता हो: id = "@ android: आईडी को एंड्रॉइड की तरह: id =" @ + id /, @android एंड्रॉइड डिफ़ॉल्ट तत्वों के लिए आरक्षित है।
जोड़ा लेखक bobby.dhillon, स्रोत
अधिक सहायता के लिए अंत में उत्तर में नया लिंक जोड़ा गया। लिंक
जोड़ा लेखक bobby.dhillon, स्रोत
क्या आपने एक्सएमएल एंड्रॉइड में बदल दिया है: id = "@ android: id ...." एंड्रॉइड की तरह: id = "@ + id/....." और फिर कोड में android.R.id को बदलने की आवश्यकता है। छुटकारा दिलाना।
जोड़ा लेखक bobby.dhillon, स्रोत
TabHost टैब का उपयोग करने का प्रयास करेंस्ट = getTabHost ();
जोड़ा लेखक bobby.dhillon, स्रोत