0

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です。

4

1 に答える 1

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
}
于 2012-10-22T22:14:03.127 に答える