我正在尝试使用getInt从我的偏好中获取一个整数,所以当用户在偏好中选择一项运动时,它将根据他们选择的运动设置不同的布局
我的java
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getPrefs.getInt("sports", 1)){
setContentView(R.layout.main);
}else if(getPrefs.getInt("sports", 1)){
setContentView(R.layout.hockey);
}else if(getPrefs.getInt("sports", 1)){
setContentView(R.layout.basketball);
}
我的偏好xml
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<ListPreference
android:entries="@array/list"
android:key="sports"
android:summary="Choose your sport"
android:title="Sports"
android:entryValues="@array/lValues"
android:defaultValue="1">
</ListPreference>
我的数组xml
<string-array name="list">
<item >
Soccer
</item>
<item >
Lacross
</item>
<item >
Hockey
</item>
<item >
VolleyBall
</item>
<item >
Basketball
</item>
</string-array>
<string-array name="lValues">
<item >
1
</item>
<item >
2
</item>
<item >
3
</item>
<item >
4
</item>
<item>
5
</item>
</string-array>
我在
下得到了错误 getPrefs.getInt("sports", 1)
最小sdk和目标sdk都是10,如果这会产生影响。
答案 0 :(得分:2)
1与真实不同。
1是一个int,而true是一个布尔值。
我想你应该这样做:
if(getPrefs.getInt("sports", 1)==1)
或
if(getPrefs.getInt("sports", 1)==2)
顺便说一下,在你的情况下,我会这样做:
switch(getPrefs.getInt("sports", 1)){
case 1:
setContentView(R.layout.main);
break;
case 2:
setContentView(R.layout.hockey);
break;
//blahBlah
}