Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.70
Zapp
0 / 0 / 0
Регистрация: 14.05.2011
Сообщений: 47
#1

spinner - Программирование Android

30.04.2013, 15:53. Просмотров 3066. Ответов 13
Метки нет (Все метки)

как реализовать spinner чтобы к выбранной строке соответствовала число. например есть формула A+B+C=Z.
A,B - это EditText (с этим все понятно),а вот Z = это spinner. в spinner`е есть слова "число1"- это 0.1; "число2"-это; 0.2 "число3" это - 0.5;
при эмуляции приложения ввожу в EditText`ы числа 1 и 2 в Spinner`e выбираю строку "число2" оно соответствует значению 0.5. значит будет так 1+2+0.5=3.5 вот как все это реализовать в приложении?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.04.2013, 15:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос spinner (Программирование Android):

Spinner - Программирование Android
подскажите пожалуйста есть такой код... spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { ...

Spinner - Программирование Android
В ответе выдает 0, что исправить? import android.os.Bundle; import android.app.Activity; import android.view.View; import...

Spinner - Программирование Android
Доброго времени суток! Можно ли сделать так чтобы при выборе одного из вариантов спиннера открывался новый активити

Spinner - Программирование Android
кто знает как сделать так чтобы при выборе пункта из Spinner выполнялся отдельный кусок кода? в моем случае есть код для генерации...

проблема со Spinner'ом - Программирование Android
Добрый день подскажите где может быть ошибка ... import java.util.ArrayList; import java.util.List; import...

spinner в ListView - Программирование Android
в каждой строке ListView есть текст и спинер указывающий какое то значение. два дня сижу не могу заставить чтоб каждый елемент листа...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
30.04.2013, 16:31 #2
Java
1
2
3
4
5
6
            List<Float> list = new ArrayList<Float>();
            list.add(0.1f);
            list.add(0.2f);
            list.add(0.5f);
            
            float c = list.get(spinner.getSelectedItemPosition());
0
Zapp
0 / 0 / 0
Регистрация: 14.05.2011
Сообщений: 47
30.04.2013, 16:58  [ТС] #3
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.example;
 
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
 
public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
}
и куда его вставлять этот код?
0
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
30.04.2013, 18:37 #4
http://developer.android.com/guide/t...s/spinner.html
0
Zapp
0 / 0 / 0
Регистрация: 14.05.2011
Сообщений: 47
30.04.2013, 19:12  [ТС] #5
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
import java.util.ArrayList;
 
import android.os.Bundle;
import android.app.Activity;
import android.database.DataSetObserver;
import android.graphics.Color;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.SpinnerAdapter;
import android.widget.TextView;
import android.widget.Toast;
 
public class MainActivity extends Activity {
    int a,b; //для едиттекст
    double ss,d;//
    EditText text1,text2;
    TextView textOtv;
    Spinner spin; 
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
         this.setContentView(R.layout.main);
         
         textOtv = (TextView) findViewById(R.id.textView2);//ответ
            text1 = (EditText) findViewById(R.id.editText1);
            text2 = (EditText) findViewById(R.id.editText2);
            spin = (Spinner) findViewById(R.id.spinner1);//спиннер
            
            final Button button1 = (Button) findViewById(R.id.button1);
            button1.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                     try {
                         a = Integer.parseInt(text1.getText().toString());//едиттекст1
                         b = Integer.parseInt(text2.getText().toString());//едиттекст2
                         ss = Double.parseDouble(spin.getContext().toString());//спиннер здесь выбрал на угат
                     }catch (NumberFormatException e) {
                         a = 0;
                         b = 0;
                        //ss=0; если разкоментировать то будет ошибка
                     }
                    d = a+b+ss;//решения а=EditText1 b=EditText2 ss=Spinner т.е.не слова и соответствующая к слове цифра
                    textOtv.setText(" "+d); //выводит ответ
                }
                
            });
    
         
        Spinner spn = (Spinner) this.findViewById(R.id.spinner1);
        ArrayList<Mat> mat = new ArrayList<Mat>();
        mat.add(new Mat("Число1", 0.12));//к слове Число1 соответствует цифра 0.12
        mat.add(new Mat("Число2", 0.11));//так же 
        mat.add(new Mat("Число3", 0.5));//так же
        MyAdapter adapter = new MyAdapter(mat);
        spn.setAdapter(adapter);
        spn.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            
            @Override
            public void onItemSelected(AdapterView<?> parent, View view,
                    int pos, long id) {
                Mat m = (Mat) parent.getItemAtPosition(pos);
                Toast.makeText(getApplicationContext(),
                        m.name+"  "+m.age+"",
                        Toast.LENGTH_LONG).show();
                
            }
 
            @Override
            public void onNothingSelected(AdapterView<?> arg0) {
                // TODO Auto-generated method stub
                
            }
        });
    }
    private class MyAdapter implements SpinnerAdapter{
         ArrayList<Mat> data;
         
         public MyAdapter(ArrayList<Mat> data){
                this.data = data;
            }
         @Override
            public int getCount() {
                return data.size();
            }
         @Override
            public Object getItem(int position) {
                return data.get(position);
            }
         @Override
            public long getItemId(int position) {
                return position;
            }
 
            @Override
            public int getItemViewType(int position) {
                return android.R.layout.simple_spinner_dropdown_item;
            }
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                TextView v = new TextView(getApplicationContext());
                v.setTextColor(Color.BLACK);
                v.setText(data.get(position).name);
                return v;
            }
 
            @Override
            public int getViewTypeCount() {
                return 1;
            }
 
            @Override
            public boolean hasStableIds() {
                return false;
            }
 
            @Override
            public boolean isEmpty() {
                return false;
            }
 
            @Override
            public void registerDataSetObserver(DataSetObserver observer) {
                
 
            }
 
            @Override
            public void unregisterDataSetObserver(DataSetObserver observer) {
              
 
            }
            
            @Override
            public View getDropDownView(int position, View convertView,
                    ViewGroup parent) {
                return this.getView(position, convertView, parent);
            }
    }
    private class Mat{
        
        public String name;
        public double age;
        
        public Mat(String name, double age){
            this.name = name;//стринги
            this.age = age;//double значения
        }
    }
    
 
}
этот пример должен вот так работать допустим выбираю строку "число3" оно соответствует числу 0.5 и если нажать на кнопку решить то появиться ответ
Почему то ошибка появляется может в ss = Double.parseDouble(spin.getContext().toString()); надо что то менять?

Добавлено через 1 минуту
у меня уже голова пухнет
0
Vladimirys
308 / 205 / 25
Регистрация: 16.01.2010
Сообщений: 587
30.04.2013, 20:26 #6
Цитата Сообщение от Zapp Посмотреть сообщение
как реализовать spinner чтобы к выбранной строке соответствовала число.
Примерно так. Как создать "список спинера" вы знаете? Этот момент пока не буду описывать.

Создаем переменную, в которую, будем помещать id (номер) выбранной позиции.

Java
1
double pos;
Так же, создаем переменную, которая будет содержать значения, для каждой позиции. Назовем её просто - A
Java
1
double A;
Создаем спинер

Java
1
2
3
4
5
 final Spinner spin = (Spinner) findViewById(R.id.spinner);
  ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            this, R.array.(ваш список элементов массива), android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spin.setAdapter(adapter);
Потом

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
pos = spin.getSelectedItemPosition();
 
                if (pos == 0) {
 
                    A = 1;
 
                }
                if (pos == 1) {
                    A = 1.434;
 
                }
                if (pos == 2) {
 
                    A = 2.5;
                }
Все.

А если честно, я вообще не понял, к чему вы нагородили весь этот огород который выше?
0
Zapp
0 / 0 / 0
Регистрация: 14.05.2011
Сообщений: 47
01.05.2013, 03:57  [ТС] #7
вот пытаюсь реализовать spinner с edittext`ом в edittext понятно там просто вводишь число. вот со спинером что то трудно надо выбрать слова а за этим словом закреплена число и когда пропускаем через формулу решения то оно должно все посчитать и вывести ответ

Добавлено через 6 часов 52 минуты
http://stackoverflow.com/questions/6...ing-array-list за основу взято эта
0
Zapp
0 / 0 / 0
Регистрация: 14.05.2011
Сообщений: 47
01.05.2013, 09:57  [ТС] #8
нажимаю на кнопку ответ 0.0
0
Миниатюры
spinner  
Zapp
0 / 0 / 0
Регистрация: 14.05.2011
Сообщений: 47
01.05.2013, 09:58  [ТС] #9
в числе3 такое значения
0
Миниатюры
spinner  
Vladimirys
308 / 205 / 25
Регистрация: 16.01.2010
Сообщений: 587
01.05.2013, 15:58 #10
Для начала, не плохо бы изменить конструкцию.

С такой:

Java
1
2
3
4
5
6
try {
                       a = Integer.parseInt(text1.getText().toString());//едиттекст1
                         b = Integer.parseInt(text2.getText().toString());//едиттекст2
                         ss = Double.parseDouble(spin.getContext().toString());//спиннер здесь выбрал на угат
                     }catch (NumberFormatException e) {
                         a = 0;
На такую:

Java
1
2
3
4
5
6
7
8
9
10
11
12
try {
     a = Integer.parseInt(text1.getText().toString());//едиттекст1
    }catch (NumberFormatException e) {
                         a = 0;}
try {
     b = Integer.parseInt(text2.getText().toString());//едиттекст2
    }catch (NumberFormatException e) {
                         b = 0;}
try {
       ss = Double.parseDouble(spin.getContext().toString());//спиннер здесь выбрал на угат
      }catch (NumberFormatException e) {
                         ss = 0;}
Тогда будет яснее где ошибка.
Ошибка видимо в том, что вы пытаетесь получить значение от спинера, до того как оно там появляется.
1
Zapp
0 / 0 / 0
Регистрация: 14.05.2011
Сообщений: 47
01.05.2013, 16:25  [ТС] #11
уже что то есть за это большое спасибо
прибавляет только edittext`ы а вот spinner что то не видит
0
Vladimirys
308 / 205 / 25
Регистрация: 16.01.2010
Сообщений: 587
01.05.2013, 17:06 #12
Попробуйте передвинуть ваш
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
final Button button1 = (Button) findViewById(R.id.button1);
            button1.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                     try {
                         a = Integer.parseInt(text1.getText().toString());//едиттекст1
                         b = Integer.parseInt(text2.getText().toString());//едиттекст2
                         ss = Double.parseDouble(spin.getContext().toString());//спиннер здесь выбрал на угат
                     }catch (NumberFormatException e) {
                         a = 0;
                         b = 0;
                        //ss=0; если разкоментировать то будет ошибка
                     }
                    d = a+b+ss;//решения а=EditText1 b=EditText2 ss=Spinner т.е.не слова и соответствующая к слове цифра
                    textOtv.setText(" "+d); //выводит ответ
                }
                
            });
, вниз, куда нибудь после спинера. Как вариант.
0
Zapp
0 / 0 / 0
Регистрация: 14.05.2011
Сообщений: 47
01.05.2013, 17:36  [ТС] #13
нажал на кнопку, 0 получилось
0
Mrsuper
0 / 0 / 0
Регистрация: 29.07.2015
Сообщений: 22
06.09.2015, 14:34 #14
везде парси double и editText тоже(мне помогло)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.09.2015, 14:34
Привет! Вот еще темы с ответами:

Наполнение Spinner из БД - Программирование Android
Подскажите, как наполнить Spinner из БД? В данный момент названия из БД выводятся с помощью отдельного layout и TextView //...

Список из Spinner - Программирование Android
Здравствуйте. Умею работать с Spinner, умею просто с ListView, но умею это делать по отдельность. Пробовал найти что то похожее, нашел...

Java spinner - Программирование Android
Спиннер(выпадающий список) у меня отображает массив из раздела strings.xml. Вопрос: как сделать так, чтобы при выборе элемента спиннера...

Spinner элементы - Программирование Android
Доброго времени суток) Есть Spinner список , нужно из этого списка выбрать элемент(текст) ,чтобы потом нажать на кнопку и в другом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.09.2015, 14:34
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru