我开发了一个应用程序的一部分,其中包含许多微调器以选择各种选项。我通过以下方式创建了微调器:
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)。我不知道如何将每个选择变成一个值。
我还希望变量用于不同的活动,这可能吗?
由于
答案 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