2011-12-20 18 views
13

मेरे पास एक गतिविधि ए है, जो गतिविधि बी शुरू करता है और गतिविधि बी गतिविधि शुरू करता है। गतिविधि बी दिखाने के लिए कोई तरीका नहीं है। मुझे यह व्यवहार चाहिए क्योंकि यदि कोई सामग्री नहीं है (उदाहरण के लिए ListView) गतिविधि बी के लिए, गतिविधि सी दिखाएं जिस पर मैं कुछ डेटा चुनता हूं, और उसके बाद गतिविधि बी पर वापस जाने के लिए वापस बटन दबाएं। बिंदु यह है कि मैं गतिविधि स्टैक पर गतिविधि बी करना चाहता हूं, लेकिन इसे निश्चित रूप से दिखाने के लिए नहीं मामलों।इसे दिखाए बिना गतिविधि शुरू करें

उत्तर

17

मैं समाधान नहीं मिला:

  • गतिविधि एक अतिरिक्त पैरामीटर के साथ गतिविधि बी शुरू होता है (intent.putExtra ("कुछ", true))
  • गतिविधि बी:
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    if (getIntent().hasExtra("something") && getIntent().getBooleanExtra("something", false) { 
      //show activity B 
     setContentView(R.layout.activity_B); 
    } else { 
      //don't show activity B, start activity C 
     startActivityForResult(activity_C, ACTIVITY_NOT_INITIALIZED); //start activity C 
    } 
} 

// जब गतिविधि सी से लौट कर आये और अगर गतिविधि बी डब्ल्यू जाँच के रूप में पहले से ही

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == ACTIVITY_NOT_INITIALIZED) { 
     //show activity B 
     setContentView(R.layout.activity_B); 
    } 
} 
1

पर onCreate() गतिविधि बी की विधि में कॉल करें। यह दिखाया नहीं जाएगा, लेकिन यह गतिविधि ढेर में होगा।

+4

यह सच है, लेकिन आप गतिविधि सी शुरू होने से पहले आधे सेकेंड के लिए रिक्त पृष्ठ देखेंगे। मुझे यह नहीं चाहिए। –

0

आप लेआउट के लिए setContentView को कॉल किए बिना स्टार्ट एक्टिविटी को कॉल कर सकते हैं। उम्मीद है की यह मदद करेगा!

+2

फिर इस गतिविधि पर लौटने से समस्याएं हो सकती हैं :) – Jin35

2

गतिविधि बी के लिए setContentView() निर्धारित नहीं करते

+2

फिर इस गतिविधि पर लौटने से समस्याएं हो सकती हैं :) – Jin35

+2

यह सच है, लेकिन आप गतिविधि सी शुरू होने से पहले आधे सेकेंड के लिए रिक्त पृष्ठ देखेंगे। मुझे यह नहीं चाहिए। रिटर्निंग कोई समस्या नहीं है क्योंकि आप इसे रेज़्यूम() में संभाल सकते हैं। –

10

प्रारंभ आपके प्रकट सेट

android:theme="@android:style/Theme.NoDisplay" 
अपनी गतिविधि के लिए

में।

+4

आपको 'गतिविधि' की आवश्यकता नहीं है 'AppCompactActivity' – vladimir

+0

' गतिविधि को बढ़ाता है 'के साथ मुझे यह मिल रहा है: java.lang.RuntimeException: गतिविधि को फिर से शुरू करने में असमर्थ {myActivity}: java.lang.IllegalStateException: गतिविधि {myActivity} नहीं कॉल खत्म() से पहले रेज़्यूम() पूरा करने से पहले –

संबंधित मुद्दे