2013-02-14 10 views
30

मैं उन्मुखीकरण प्रोग्राम के रूप में परिवर्तित करना चाहते हैं, जबकि मेरी Android एप्लिकेशन चल पुन: लोड के बिना एंड्रॉयड में स्क्रीन अभिविन्यास बदलें:कोड की इन पंक्तियों के साथ, गतिविधि

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE); 

वे अब तक काम करते हैं, लेकिन मुख्य समस्या यह है कि है जब स्क्रीन अभिविन्यास बदलता है, तो पूरी गतिविधि को फिर से लोड किया जाता है, और मुझे वह नहीं चाहिए। क्या यह संभव है? धन्यवाद।

संपादित करें: ठीक है, जब मुझे पता चला कि मैं क्या खो रहा था। मैं configChanges संपत्ति में भी शामिल करने के लिए "screenSize" थी, इसलिए

android:configChanges="orientation|screenSize" 

होने पूरी बात को हल किया।

+0

सेट मुझे लगता है कि आप इस सवाल का जवाब में तीसरे विकल्प की जांच करनी चाहिए की जरूरत है। मेरा मानना ​​है कि फोनगैप अभिविन्यास परिवर्तनों को कैसे प्रबंधित करता है http://stackoverflow.com/questions/5913130/dont-reload-plication-when-orientation-changes – MikeIsrael

उत्तर

4

आप onSaveInstanceState (बंडल savedInstanceState) को ओवरराइड और आवेदन राज्य मूल्यों आप बंडल पैरामीटर

+0

+1, यह सही उत्तर => उसने जो पूछा है वह सकारात्मक नहीं है , बस इस समाधान के साथ वह वही कर सकता है जो वह चाहता है, केवल 13 से ऊपर एपीआई के साथ: configChanges = "ओरिएंटेशन | स्क्रीनसाइज" –

1

AndroidManifest फ़ाइल में करने के लिए परिवर्तित करना चाहते हैं लिखने के लिए गतिविधि आप इस उन्मुखीकरण

हैंडल करना चाहते हैं के लिए android:configChanges="orientation" जोड़ने की जरूरत कॉन्फ़िगरेशन पर गतिविधि का उपयोग करें ओवरराइड विधि बदलें। कार्य करें जो आप अभिविन्यास परिवर्तन में संभालना चाहते हैं।

+0

धन्यवाद, लेकिन यह अभी भी काम नहीं करता है। हो सकता है कि यह हो सकता है क्योंकि मैं गतिविधि में फोनगैप/एचटीएमएल 5 का उपयोग कर रहा हूं? धन्यवाद। – luisfer

+0

क्या आप और कोड जोड़ सकते हैं? –

+0

@RajShah किसके लिए अधिक कोड की आवश्यकता है? क्या आपने सवाल पढ़ा? शीर्षक के बारे में कैसे? –

1

यहाँ Ansewered:

Android, how to not destroy the activity when I rotate the device?

जोड़ें:

android:configChanges="orientation"

अपने androidmanifest करने के लिए।

देखें:

http://developer.android.com/guide/topics/manifest/activity-element.html#config

+0

धन्यवाद, लेकिन यह अभी भी काम नहीं करता है। हो सकता है कि यह हो सकता है क्योंकि मैं गतिविधि में फोनगैप/एचटीएमएल 5 का उपयोग कर रहा हूं? धन्यवाद। – luisfer

27

@luisfer द्वारा संपादित देखें। Android 3.2 और इसके बाद के संस्करण को निशाना बनाने के लिए, आप इस विधि दोनों

android:configChanges="orientation|screenSize" 

http://developer.android.com/guide/topics/resources/runtime-changes.html#HandlingTheChange

+0

यह नेविगेशन स्टैक के साथ भी मेरी सभी समस्याओं को बदल दिया। धन्यवाद दोस्त –

1

कॉल और मैनिफ़ेस्ट फ़ाइल

android:configChanges="orientation|screenSize|keyboardHidden" 

public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 

     // Checks the orientation of the screen 
     if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
      Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show(); 
     } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){ 
      Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show(); 
     } 
    } 
संबंधित मुद्दे