我为我的Spinner设置了一个数组适配器,以显示一个Grades(A +,A,...等)的下拉列表。 我需要的只是当用户选择A +时,myApp应该将其理解为浮点值10,这样A +(= 10)的值可以在需要整数来计算整体等级的公式中使用。 例如,如果用户选择B +,我的APP应该理解为8.5,可以在公式中使用。
基本上,我希望USERS在微调器上看到等级,但我需要它的实际值才能进行计算。
我可以在旋转器上使用物品的位置吗? 请举例说明如何检索它。
My String资源:
<?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>
MY JAVA CODE
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.
}
我需要为所有的微调器应用相同的东西。我的XML文件中共有7个。
我想到的一个方法是,由于我的Spinners上的ITEMS可以转换为String,我可以使用一个开关(String),但Android是在Java 1.5,1.6下编译的。而switch(String)是一个在Java 1.7中有特色。所以不能用这个。
答案 0 :(得分:0)
我建议您创建一个包含
等对象的自定义适配器public class Grade{
String mLabel;
Float mValue;
.......
}
查看answer和example
因此,将该对象列表定义为Acticity
/ Fragment
的成员
之后在onItemSelected
中,您将按指定位置对象。
答案 1 :(得分:0)
您可以使用HashMap,您可以使用“A +”作为键,使用10作为值。因此,当用户点击“A +”时,您可以在HashMap中找到具有值A +的键,因此您可以找到值10.
答案 2 :(得分:0)
以下是如何使用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+"));