如何根据Android微调器上选择的项目为变量分配整数值。?
我已经为微调器设置了一个数组适配器,以显示等级(a+、a等)的下拉列表。 我所需要的是,当用户选择A+,myApp时,应该将其理解为浮点值10,这样A+(=10)的值就可以用在需要整数来计算整体分数的公式中。 例如,如果用户选择B+,我的应用程序应该理解为8.5,可以在公式中使用 基本上,我希望用户看到微调器上的等级,但我需要它的实际值进行计算 我可以利用微调器上项目的位置吗? 请举例说明如何检索它 我的字符串资源:如何根据Android微调器上选择的项目为变量分配整数值。?,android,spinner,android-spinner,Android,Spinner,Android Spinner,我已经为微调器设置了一个数组适配器,以显示等级(a+、a等)的下拉列表。 我所需要的是,当用户选择A+,myApp时,应该将其理解为浮点值10,这样A+(=10)的值就可以用在需要整数来计算整体分数的公式中。 例如,如果用户选择B+,我的应用程序应该理解为8.5,可以在公式中使用 基本上,我希望用户看到微调器上的等级,但我需要它的实际值进行计算 我可以利用微调器上项目的位置吗? 请举例说明如何检索它 我的字符串资源: <?xml version="1.0" encoding="utf-8"
<?xml version="1.0" encoding="utf-8"?>
<resources>
</string-array>
<string-array name="grade_list">
<item>A+</item>
<item>A</item>
<item>A-</item>
<item>B+</item>
<item>B</item>
<item>B-</item>
<item>C+</item>
<item>C</item>
<item>C-</item>
<item>D</item>
<item>E</item>
<item>U</item>
</resources>
A+
A.
A-
B+
B
B-
C+
C
C-
D
E
U
我的JAVA代码
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
public class CSEsem1 extends Activity implements OnClickListener{
Spinner cs1spin1;
Spinner cs1spin2;
Spinner cs1spin3;
Spinner cs1spin4;
Spinner cs1spin5;
Spinner cs1spin6;
Spinner cs1spin7;
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.laycsesem1);
ArrayAdapter<CharSequence> grade = ArrayAdapter.createFromResource(this,
R.array.grade_list, android.R.layout.simple_spinner_item);
grade.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
cs1spin1.setAdapter(sem_adapter);
cs1spin1.setOnItemSelectedListener(this);
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// Completely blank after this.
}
导入android.app.Activity;
导入android.os.Bundle;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.widget.ArrayAdapter;
导入android.widget.Spinner;
导入android.widget.TextView;
公共类CSEsem1扩展了活动实现OnClickListener{
旋转器cs1spin1;
旋转器cs1spin2;
旋转器cs1spin3;
旋转器cs1spin4;
旋转器cs1spin5;
旋转器cs1spin6;
旋转器cs1spin7;
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
setContentView(R.layout.laycssem1);
ArrayAdapter grade=ArrayAdapter.createFromResource(此,
R.array.grade_list,android.R.layout.simple_微调器_项);
grade.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
cs1spin1.设置适配器(sem_适配器);
cs1spin1.setOnItemSelectedListener(此);
@凌驾
已选择公共视图(适配器视图arg0、视图arg1、内部arg2、,
长arg3){
//在这之后完全空白。
}
我需要对所有微调器应用相同的设置。我的XML文件中总共有7个
我想到的一个方法是,由于微调器上的项目可以转换为字符串,我本可以使用开关(字符串),但Android是在Java 1.5,1.6.下编译的。开关(字符串)是Java 1.7中的一个特色。因此不能使用它
我建议您创建一个自定义适配器,用于保存以下对象
public class Grade{
String mLabel;
Float mValue;
.......
}
看看这个和那个。因此,将该对象列表定义为
活动的一个成员/片段
然后在中选择按给定位置获取对象。您可以使用HashMap,例如,您可以使用“a+”作为键,使用10作为值。因此,当用户单击“a+”时,您可以在HashMap中找到具有值a+的键,从而可以找到值10。下面是一个示例,您可以如何使用Hashap执行此操作:
Map<String, Double> grades = new HashMap<String, Double>();
grades.put("A+", 10.0);
grades.put("B+", 8.5);
//You can use grades.get(your_spinner.getSelectedItem())
System.out.println(grades.get("A+"));
Map grades=newhashmap();
评级。put(“A+”,10.0);
等级。put(“B+”,8.5);
//您可以使用grades.get(您的\u微调器.getSelectedItem())
System.out.println(grades.get(“A+”));
请给出一个您尝试过的示例。我们不会为您做这件事。我已经展示了到目前为止所做的事情…我的字符串资源、Java代码和XML有7个喷丝头!我知道了。将尝试实现。顺便说一句,非常感谢您的想法。明白了。非常感谢。我也将尝试一下!再次感谢。