如何根据Android微调器上选择的项目为变量分配整数值。?

如何根据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"

我已经为微调器设置了一个数组适配器,以显示等级(a+、a等)的下拉列表。 我所需要的是,当用户选择A+,myApp时,应该将其理解为浮点值10,这样A+(=10)的值就可以用在需要整数来计算整体分数的公式中。 例如,如果用户选择B+,我的应用程序应该理解为8.5,可以在公式中使用

基本上,我希望用户看到微调器上的等级,但我需要它的实际值进行计算

我可以利用微调器上项目的位置吗? 请举例说明如何检索它

我的字符串资源:

<?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个喷丝头!我知道了。将尝试实现。顺便说一句,非常感谢您的想法。明白了。非常感谢。我也将尝试一下!再次感谢。