Как присвоить целочисленное значение переменной на основе элемента, выбранного на 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. Так что не могу этим воспользоваться.




578   3  

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

    Ничего не найдено.