2013-05-04 9 views
14

मैं अपने ऐप पर पसंद गतिविधि बनाने के उपयोगकर्ता के रूप में अनुवर्ती/बंद पृष्ठभूमि स्प्लैश स्क्रीन संगीत शुरू करने के लिए अनुमति देने के लिए:वैकल्पिक अपनी पदावनत

public class Prefs extends PreferenceActivity{ 

@SuppressWarnings("deprecation") 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);  
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    addPreferencesFromResource(R.xml.prefs); 


    }  
} 

व एक्सएमएल फ़ोल्डर के अंदर prefs.xml बनाएँ:

<?xml version="1.0" encoding="utf-8" ?> 
    <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 
     <CheckBoxPreference 
     android:title="splash music" 
     android:defaultValue="true" 
     android:key="checkbox" 
     android:summary="Plese remove music "/> 
    </PreferenceScreen> 

और छप गतिविधि के लिए इस कोड:

public class Splash extends Activity{ 
    MediaPlayer ourSong; 
@Override 
protected void onCreate(Bundle Drandroid) { 
    this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    // TODO Auto-generated method stub 
    super.onCreate(Drandroid); 
     setContentView(R.layout.splash); 

    ourSong = MediaPlayer.create(Splash.this, R.raw.splashsound); 

    SharedPreferences getPrefs = 
       PreferenceManager.getDefaultSharedPreferences(getBaseContext()); 
    boolean music = getPrefs.getBoolean("checkbox", true); 
    if (music == true)  
    ourSong.start(); 

    Thread timer = new Thread(){ 
     public void run(){ 
      try{ 
       sleep(5000); } 
       catch (InterruptedException e){ 
       e.printStackTrace(); } 
       finally{ 
    Intent openTurkeyTrip = new Intent("com.android.dr.MENU"); 

     startActivity(openplanet); }}         
           }; 
     timer.start(); } 

@Override 
protected void onPause() { 
      // TODO Auto-generated method stub 
    super.onPause(); 
    ourSong.release(); 
    finish(); 
      } 
     } 

मैं कैसे यह अन्य clas के साथ हल कर सकते हैं एस को बहिष्कृत नहीं किया गया है, मेरा ऐप भी पुराने और नए उपकरणों का समर्थन करेगा:

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="17" /> 

किसी भी सलाह की सराहना की जाएगी, धन्यवाद।

+1

के संभावित डुप्लिकेट नए उपकरणों पर नया टुकड़ा आधारित प्रणाली पर भरोसा [क्या एक PreferenceActivity में "addPreferencesFromResource" के बजाय उपयोग कैसे करें?] (http://stackoverflow.com/ प्रश्न/682,231 9/क्या उपयोग करने के लिए-बजाय-addpreferencesfromresource-in-a-preferenceactivity) – Mafro34

+0

डुप्लिकेट प्रश्न –

उत्तर

38

PreferenceActivity बहिष्कृत नहीं किया गया है।

addPreferencesFromResource()PreferenceActivity बहिष्कृत है। हालांकि, यदि आप एपीआई लेवल 10 या उससे कम का समर्थन कर रहे हैं, तो कम से कम उन उपकरणों पर इसका उपयोग करने के अलावा आपके पास कोई विकल्प नहीं है। के रूप में the PrefereceActivity documentation में वर्णन किया गया

गैर पदावनत दृष्टिकोण, PreferenceActivity साथ संयोजन के रूप में उपयोग करने के लिए PreferenceFragment है। यदि आपका ऐप केवल एपीआई लेवल 11 और उच्चतर का समर्थन कर रहा है, तो बस इसका इस्तेमाल करें। अपने अनुप्रयोग पुराने उपकरणों समर्थन कर रहा है, तो या तो:

  • उपयोग addPreferencesFromResource() हर समय, यह अभी भी, काम करता है के रूप में जब तक आप पुराने संस्करणों के लिए समर्थन छोड़, या

  • केवल पुराने उपकरणों पर उपयोग addPreferencesFromResource() (Build.VERSION.SDK_INT की जाँच करके), और

+0

मेरा ऐप पुराने और नए डिवाइस (संपादित किए गए पोस्ट) दोनों का समर्थन करेगा, जैसा कि आप उल्लेख करते हैं, दोनों के लिए यह कैसे काम करें: उपयोग करें addPreferencesFromResource() केवल पुराने उपकरणों (Build.VERSION.SDK_INT की जांच करके) पर, और कोड में नए उपकरणों पर नए खंड-आधारित सिस्टम पर भरोसा करें, कृपया, धन्यवाद –

+1

@AndroidStack: यह थोड़ा सा हो सकता है जो उचित रूप से कवर किया जा सकता है एक StackOverflow उत्तर में। यहां कुछ नमूना परियोजनाएं दी गई हैं जो परिणाम प्रदर्शित करती हैं: https://github.com/commonsguy/cw-omnibus/tree/master/Prefs/FragmentsBC https://github.com/commonsguy/cw-omnibus/tree/master/Prefs/सिंगल हैडर https://github.com/commonsguy/cw-omnibus/tree/master/Prefs/SingleHeader2 यह कहा जा रहा है कि, जब तक कि आप एक अनुभवी एंड्रॉइड डेवलपर नहीं हैं, मैं अनुशंसा करता हूं कि आप केवल 'addPreferencesFromResource() 'का उपयोग करें पुराने उपकरणों के लिए समर्थन ड्रॉप। – CommonsWare

+0

बहुत धन्यवाद मेरे प्रिय –

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