Как присвоить целочисленное значение переменной на основе элемента, выбранного на Android Spinner.?
Я установил адаптер массива для моего спиннера, чтобы отобразить выпадающий список оценок (A+, A, ...прием).
Все, что мне нужно, это когда пользователь выбирает, A+, myApp должен понимать его как плавающее значение 10, так что значение A+ (=10)может быть использовано в формуле, которая нуждается в integer для вычисления общей оценки.
например, если пользователь выбирает 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>
МОЙ 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.
}
Мне нужно применить то же самое для всех прядильщиков. У меня есть всего 7 в моем XML-файле.
Метод, о котором я думал, был,так как мои элементы на спиннерах могут быть преобразованы в строку, я мог бы использовать переключатель (String), но Android компилируется под Java 1.5, 1.6 ..и переключатель (строка) является рекомендуемым в Java 1.7. Так что не могу этим воспользоваться.
3 ответов:
Я предлагаю вам создать пользовательский адаптер, который содержит такие объекты, как
public class Grade{ String mLabel; Float mValue; ....... }Посмотрите на этотответ и этотпример .
Поэтому определите этот список объектов в качестве члена ВашегоActicity/Fragment.
После этого вonItemSelectedВозьмите объект по заданной позиции.
Можно использовать хэш-карту, в которой в качестве ключа можно использовать '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+"));
Comments