将文本字符串值从微调器转换为整数,以便在android中进行数学操作

时间:2011-12-07 14:17:22

标签: android spinner arrays

我开发了一个应用程序的一部分,其中包含许多微调器以选择各种选项。我通过以下方式创建了微调器:

Spinner spinner1 = (Spinner) findViewById(R.id.spinner1);
    String rowvalue =  null;

ArrayAdapter<CharSequence> adapter1 = ArrayAdapter.createFromResource(this,
 R.array.chpugsp1_array, android.R.layout.simple_spinner_item);

adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(adapter1);
spinner1.setOnItemSelectedListener(
new     OnItemSelectedListener() {

@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {

rowvalue = parent.getItemAtPosition(pos).toString();
}
public void onNothingSelected(AdapterView<?> parent) {

}
});

我的数组(chpugsp1_array)位于strings.xml文件中:

<string name="chpugsp1"></string>
<string-array name="chpugsp1_array">
    <item>less than 34</item>
    <item>34-50</item>
    <item>greater than 50</item>
</string-array>

我试图将3个不同的字符串数组转换为不同的数值,以便我可以在数学方程中使用它们。例如,如果选择“小于34”,我希望它等于值1并保存为稍后可以使用的变量(比如变量1)。我不知道如何将每个选择变成一个值。

我还希望变量用于不同的活动,这可能吗?

由于

2 个答案:

答案 0 :(得分:0)

检索微调器索引并将其存储在SharedPreference

int index =spinner1.getSelectedItemPosition();
settings = getSharedPreferences(SHARED_PREFERENCES, 0);
SharedPreferences.Editor editor = settings.edit();

editor.putInt("SpinnerValue", index);
editor.commit();

答案 1 :(得分:0)

我会说你已经拥有的东西。 您的onItemSelected方法的值为position。这指向列表中的哪个项目被单击。 考虑到您的列表是静态的,相同的位置将始终具有相同的值。

因此,您可以根据您的选择使用该位置为变量指定一个值。

尝试这样的事情。

private int yourInt;

    public void onItemSelected(AdapterView<?> parent, View view, int pos,
            long id) {

        rowvalue = parent.getItemAtPosition(pos).toString();

        switch (pos) {

        case 0:
            yourInt = 1; // First option picked
            break;

        case 1:
            yourInt = 2; // Second option
            break;

        case 2:
            yourInt = 3; // Third option
            break;

        }

    }

通过将Intents与额外值一起使用,您可以将此值传输到其他Activities。 有关这方面的更多信息,请访问on this site