2014-09-29 71 views
0

我正在制作一个应用程序,我跑到一个路障。 基本上我有一个复选框...如果复选框被选中,它应该允许在编辑文本首选项中输入文本,并使用该值。但问题出在这里......如果该框未被选中,它将使用EditTextPreference中的值。如果该框被选中,则使用硬编码值。我的活动应用程序做对面的复选框应该做什么

部分:

private void loadURI() 
    { 
     PreferenceManager.setDefaultValues(this, R.xml.settings, true); 
     SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this); 
     if (settings.getBoolean("default_uri", false)){ 
      String defaultURI = getString(R.string.dream_uri); 
      this.mWebView.loadUrl(defaultURI); 
     } 
     else { 
      String customURI = settings.getString("custom_uri", ""); 
      this.mWebView.loadUrl(customURI); 
     } 

    } 

将Settings.xml:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 
    <PreferenceCategory 
     android:title="Backdrop Settings" > 
     <CheckBoxPreference 
      android:title="Use Custom Backdrop URL" 
      android:id="@id/checkBox1" 
      android:key="default_uri" 
      android:defaultValue="true"/> 
     <EditTextPreference 
      android:title="Custom Backdrop URL" 
      android:summary="Tap here to enter custom URL" 
      android:id="@id/editText1" 
      android:defaultValue="Enter Custom URL here" 
      android:key="custom_uri" 
      android:dependency="default_uri" /> 
     <CheckBoxPreference 
      android:title="Use a Custom Slideshow Period?" 
      android:key="slide_duration" 
      android:defaultValue="false"/> 
     <ListPreference 
      android:title="Slideshow Duration" 
      android:summary="How long should each slide be displayed?" 
      android:key="list_duration" 
      android:dependency="slide_duration"/> 
    </PreferenceCategory> 
    <PreferenceCategory 
     android:title="Other"> 
     <Preference 
      android:title="Test Dream" 
      android:summary="Tap here to test the dream" 
      android:key="testDream" /> 
     <Preference 
      android:title="About" 
      android:key="AboutApp" 
      android:summary="About this app" /> 
    </PreferenceCategory> 
</PreferenceScreen> 

我的首选活动:提前

public class mollySettings extends PreferenceActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     addPreferencesFromResource(R.xml.settings); 

     Preference button = findPreference("testDream"); 
     button.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { 
      @Override 
      public boolean onPreferenceClick(Preference arg0) { 
       final Intent intent = new Intent(Intent.ACTION_MAIN); 
       intent.setClassName("com.android.systemui", "com.android.systemui.Somnambulator"); 
       startActivity(intent); 
       return true; 
      } 
     }); 

     Preference about = findPreference("AboutApp"); 
     about.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { 
      @Override 
      public boolean onPreferenceClick(Preference arg1) { 
       final Intent intent = new Intent(Intent.ACTION_MAIN); 
       intent.setClassName("com.death2all110.flogging.molly", "com.death2all110.flogging.molly.About"); 
       startActivity(intent); 
       return true; 
      } 
     }); 


    } 
} 

感谢,并请让我知道如果有是你需要的东西

回答

0

明白了。

我给if语句添加了感叹号。所以loadURI方法现在是:

private void loadURI() 
    { 
     PreferenceManager.setDefaultValues(this, R.xml.settings, true); 
     SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this); 
     if (!settings.getBoolean("default_uri", false)){ 
      String defaultURI = getString(R.string.dream_uri); 
      this.mWebView.loadUrl(defaultURI); 
     } 
     else { 
      String customURI = settings.getString("custom_uri", ""); 
      this.mWebView.loadUrl(customURI); 
     } 

    } 

相反的:

private void loadURI() 
    { 
     PreferenceManager.setDefaultValues(this, R.xml.settings, true); 
     SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this); 
     if (settings.getBoolean("default_uri", false)){ 
      String defaultURI = getString(R.string.dream_uri); 
      this.mWebView.loadUrl(defaultURI); 
     } 
     else { 
      String customURI = settings.getString("custom_uri", ""); 
      this.mWebView.loadUrl(customURI); 
     } 

    } 
相关问题