为什么在将prefs.getString的结果与零进行比较时,我得到假?

时间:2011-03-21 18:15:57

标签: android android-preferences

我在 preferences.xml

中有以下项目
    <ListPreference android:key="pref_movies_min_imdb"
        android:title="@string/pref_movies_min_imdb" 
        android:summary="@string/pref_movies_min_imdb_summary"
        android:entries="@array/pref_movies_min_imdb_array_entries"
        android:entryValues="@array/pref_movies_min_imdb_array_values" 
        android:defaultValue="0"/>

array.xml

<string-array name="pref_movies_min_imdb_array_entries">
    <item>n/a</item>
    <item>1</item>
    <item>2</item>
    <item>3</item>
    <item>4</item>
    <item>5</item>
    <item>6</item>
    <item>7</item>
    <item>8</item>
    <item>9</item>
    <item>10</item>
</string-array>
<string-array name="pref_movies_min_imdb_array_values">
    <item>0</item>
    <item>1</item>
    <item>2</item>
    <item>3</item>
    <item>4</item>
    <item>5</item>
    <item>6</item>
    <item>7</item>
    <item>8</item>
    <item>9</item>
    <item>10</item>
</string-array>

用户尚未在首选项中选择任何值。 但是在以下代码中* imdb_rating_min *被添加到 url

String minIMDB = prefs.getString("pref_movies_min_imdb", "0");
if (minIMDB != "0"){
    url += "&imdb_rating_min=" + minIMDB;
}

调试器显示minIMDB = 0,url =“&amp; imdb_rating_min = 0”

为什么会这样?

1 个答案:

答案 0 :(得分:4)

使用!minIMDB.equals("0")代替!=

if (!minIMDB.equals("0")){
    url += "&imdb_rating_min=" + minIMDB;
}

==!=比较记忆位置。 .equals方法会比较Strings的内容。