0

I have this code to make some treatement when an option from ListPreference is selected:

choice = prefs.getString("listPref_kernel", "0");
if (choice == "0") {
            try {
                File sdCard = Environment.getExternalStorageDirectory();
              File dir = new File (sdCard.getAbsolutePath() + "/jetpack/install");
            dir.mkdirs();
            File file = new File(dir, "talondev");
        FileOutputStream f = new FileOutputStream(file);
            }
          catch (Exception e) {
            Log.d("Excep_ERROR", e.getMessage());
        }
          }

就在这条指令之后:if (choice == "0")

什么都没有执行,我举杯祝酒,在该指令之后没有显示,但在它之前是的。XML 文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="kernel">
 <item>TalonDev</item>
 <item>Semaphore</item>
 <item>SpeedMod</item>
 <item>Galaxian</item>
</string-array>
<string-array name="kernel_return">
 <item>0</item>
 <item>1</item>
 <item>2</item>
 <item>3</item>
</string-array>
</resources>

请问有什么想法吗?非常感谢你。

4

3 回答 3

1

如果它确实是 String 实例,那么尝试if(Integer.valueOf(choice) == 0)

于 2011-07-28T20:10:40.643 回答
1

要么像 Nikola 指出的那样转换成一个数字,要么做if("0".equals(choice)) {..}. 无法使用 == 测试字符串变量是否相等。

于 2011-07-28T20:12:27.920 回答
0

如果选择是整数尝试if (choice == 0)

于 2011-07-28T20:07:38.957 回答