我的应用程序中有一个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。
发布于 2015-07-03 08:38:55
您检查的String等式不正确。您应该使用equals()方法而不是==。例如,而不是
if (defaultDicLoad == "naver")你应该用
if ("naver".equals(defaultDicLoad))这适用于所有String等式检查。
https://stackoverflow.com/questions/31202147
复制相似问题