PreferenceActivity 不工作
PreferenceActivity not working
我的应用程序中有一个 PreferenceActivity,因此它可以显示正确的 WebView 并隐藏其他的。它会保存用户保存的设置,但不会隐藏 WebView。这是我的代码。
Preference.xml
<PreferenceCategory android:title="@string/setDefaultDic">
<ListPreference
android:defaultValue="naver"
android:dialogTitle="@string/defaultDic"
android:entries="@array/defaultDic"
android:entryValues="@array/defaultDic_values"
android:key="defaultDic"
android:title="@string/defaultDic"
android:summary="@string/summaryDefaultDic"/>
</PreferenceCategory>
这是我的PreferenceActivity.java
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.pref_settings);
setOnPreferenceChange(findPreference("defaultDic"));
}
和我的 MainActivity.java.
private void loadPreferences()
{
web1 = (WebView) findViewById(R.id.web1);
web2 = (WebView) findViewById(R.id.web2);
web3 = (WebView) findViewById(R.id.web3);
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
String defaultDicLoad;
defaultDicLoad = sharedPrefs.getString("defaultDic","naver");
if (defaultDicLoad == "naver"){
web2.setVisibility(View.GONE);
web3.setVisibility(View.GONE);
}
else if (defaultDicLoad == "daum"){
web1.setVisibility(View.GONE);
web3.setVisibility(View.GONE);
}
else if (defaultDicLoad == "google"){
web1.setVisibility(View.GONE);
web2.setVisibility(View.GONE);
}
}
在onCreate
中,有loadPreferences()
所以它隐藏了WebView。
您检查 String
相等性不正确。您应该使用 equals()
方法而不是 ==
。例如,而不是
if (defaultDicLoad == "naver")
你应该使用
if ("naver".equals(defaultDicLoad))
这适用于所有 String
相等性检查。
我的应用程序中有一个 PreferenceActivity,因此它可以显示正确的 WebView 并隐藏其他的。它会保存用户保存的设置,但不会隐藏 WebView。这是我的代码。
Preference.xml
<PreferenceCategory android:title="@string/setDefaultDic">
<ListPreference
android:defaultValue="naver"
android:dialogTitle="@string/defaultDic"
android:entries="@array/defaultDic"
android:entryValues="@array/defaultDic_values"
android:key="defaultDic"
android:title="@string/defaultDic"
android:summary="@string/summaryDefaultDic"/>
</PreferenceCategory>
这是我的PreferenceActivity.java
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.pref_settings);
setOnPreferenceChange(findPreference("defaultDic"));
}
和我的 MainActivity.java.
private void loadPreferences()
{
web1 = (WebView) findViewById(R.id.web1);
web2 = (WebView) findViewById(R.id.web2);
web3 = (WebView) findViewById(R.id.web3);
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
String defaultDicLoad;
defaultDicLoad = sharedPrefs.getString("defaultDic","naver");
if (defaultDicLoad == "naver"){
web2.setVisibility(View.GONE);
web3.setVisibility(View.GONE);
}
else if (defaultDicLoad == "daum"){
web1.setVisibility(View.GONE);
web3.setVisibility(View.GONE);
}
else if (defaultDicLoad == "google"){
web1.setVisibility(View.GONE);
web2.setVisibility(View.GONE);
}
}
在onCreate
中,有loadPreferences()
所以它隐藏了WebView。
您检查 String
相等性不正确。您应该使用 equals()
方法而不是 ==
。例如,而不是
if (defaultDicLoad == "naver")
你应该使用
if ("naver".equals(defaultDicLoad))
这适用于所有 String
相等性检查。