Преобразование значения текстовой строки из счетчика в целое число для математических манипуляций в Android - PullRequest
0 голосов
/ 07 декабря 2011

Я разработал часть приложения, которое содержит несколько блесен для выбора различных опций. Я создал счетчики следующим образом:

Spinner spinner1 = (Spinner) findViewById(R.id.spinner1);
    String rowvalue =  null;

ArrayAdapter<CharSequence> adapter1 = ArrayAdapter.createFromResource(this,
 R.array.chpugsp1_array, android.R.layout.simple_spinner_item);

adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(adapter1);
spinner1.setOnItemSelectedListener(
new     OnItemSelectedListener() {

@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {

rowvalue = parent.getItemAtPosition(pos).toString();
}
public void onNothingSelected(AdapterView<?> parent) {

}
});

Мой массив (chpugsp1_array) находится в файле strings.xml как:

<string name="chpugsp1"></string>
<string-array name="chpugsp1_array">
    <item>less than 34</item>
    <item>34-50</item>
    <item>greater than 50</item>
</string-array>

Я пытаюсь преобразовать 3 разных массива строк в разные числовые значения, чтобы я мог использовать их в математическом уравнении. Например, если выбрано «меньше 34», я хочу, чтобы оно было равно значению 1 и сохранялось как переменная (скажем, variable1), которую можно использовать позже. Я не знаю, как превратить каждый выбор в значение.

Я бы также предпочел, чтобы переменная использовалась в другом упражнении, возможно ли это?

Спасибо

Ответы [ 2 ]

0 голосов
/ 07 декабря 2011

Я бы сказал, используйте то, что у вас уже есть.Ваш метод onItemSelected дает значение position.Это указывает на то, какой элемент в списке был нажат.Учитывая, что ваш список статичен, одна и та же позиция всегда будет иметь одно и то же значение.

В связи с этим вы можете использовать эту позицию для присвоения переменной определенного значения в зависимости от вашего выбора.

Попробуйтечто-то вроде этого.

private int yourInt;

    public void onItemSelected(AdapterView<?> parent, View view, int pos,
            long id) {

        rowvalue = parent.getItemAtPosition(pos).toString();

        switch (pos) {

        case 0:
            yourInt = 1; // First option picked
            break;

        case 1:
            yourInt = 2; // Second option
            break;

        case 2:
            yourInt = 3; // Third option
            break;

        }

    }

Используя Intents с дополнительными значениями, вы можете затем передать это значение другому Activities.Подробнее об этом можно узнать на этом сайте

0 голосов
/ 07 декабря 2011

Получить индекс счетчика и сохранить его в SharedPreference:

int index =spinner1.getSelectedItemPosition();
settings = getSharedPreferences(SHARED_PREFERENCES, 0);
SharedPreferences.Editor editor = settings.edit();

editor.putInt("SpinnerValue", index);
editor.commit();
...