Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 30.10.2014
Сообщений: 24

Spinner переход в другое Activity

04.11.2014, 01:13. Показов 4098. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Подскажите пожалуйста как можно прописать преход тапом в списке Spinner до другого Acrivity?
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
    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            public void onItemSelected(AdapterView<?> parent,
                    View itemSelected, int selectedItemPosition, long selectedId) {
                
                
                String itemname = new Integer(selectedItemPosition).toString();
                
                Intent intent = new Intent();
                
                intent.setClass(MainActivity.this, ActivityTwo.class);
                
                Bundle b = new Bundle();
                
                // DefStrID содержит строку, которую пошлем с помощью
                //ItemName в другое  Activity
                
                
                b.putString("defStrID", itemname);
                
                intent.putExtras(b);
                
                // Intent
                
                startActivity(intent);
                
            }
            public void onNothingSelected(AdapterView<?> parent) {
            }
        });
Ошибки как таковой нет, но приложение закрывается
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.11.2014, 01:13
Ответы с готовыми решениями:

Android - Передача данных с одного Activity на другое Activity
Здравствуйте , возникла необходимость получения числовых (int и float ну или double) данных в одном Activity , а обработка и вывод...

Как из одного Activity перенести фотку в другое Activity?
Собственно необходимо отобразить фотографию в activity2, которую загрузили в activity1 из галереи Это код из activity1.java в...

Обработка нажатия Radiogroup и Spinner на Activity
В рамках activity имеется RadioGroup и Spinner, посредством которых выполняются некоторые арифметические действия: public class...

13
349 / 240 / 34
Регистрация: 16.01.2010
Сообщений: 766
04.11.2014, 01:29
Как то у вас всего, много и повторяется
Вот так, все должно работать:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    spin.setOnItemSelectedListener(new OnItemSelectedListener() {
    
            public void onItemSelected(AdapterView<?> arg0, View arg1,
                    int arg2, long arg3) {
                // TODO Auto-generated method stub
            
                        Intent i = new Intent(odin.this, dva.class);
                        i.putExtra("result", res);
                        startActivity(i);
            
            }
            
            public void onNothingSelected(AdapterView<?> arg0) {
                // TODO Auto-generated method stub
 
            }
        });
0
0 / 0 / 0
Регистрация: 30.10.2014
Сообщений: 24
04.11.2014, 11:41  [ТС]
Цитата Сообщение от Vladimirys Посмотреть сообщение
Как то у вас всего, много и повторяется
Вот так, все должно работать:
Поменял все равно не работает
0
28 / 28 / 10
Регистрация: 24.05.2013
Сообщений: 157
04.11.2014, 12:30
Stormylks,

Не по теме:


Помню, когда начал разбираться с сервисом в Android, долго-долго ломал голову, почему же мой сервис не запускается, хотя уже дошел до того, что взял готовый код и просто скопировал. И только через несколько часов понял, что я просто забыл в манифесте прописать этот сервис.



Activity в манифесте прописан?
0
0 / 0 / 0
Регистрация: 30.10.2014
Сообщений: 24
04.11.2014, 12:51  [ТС]
Цитата Сообщение от Sony17 Посмотреть сообщение
Activity в манифесте прописан?
Да, про манифест я не забыл)

Добавлено через 4 минуты
просто если вместо реализации клика и перехода на другое активити, поставить toast например, все начинает отлично работать, но когда ставишь обратно, ошибок никаких нет. а приложение закрывается
0
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
04.11.2014, 13:03
Stormylks, а если прямо в onCreate() поставить вызов startActivity(intent) (ну и перед этим создать его), то тоже будет падать? Что-то не так со второй активностью. А попробуйте в манифесте указать, что это именно она, а не MainActivity является первой запускаемой.

Добавлено через 2 минуты
Покажите код создания второй активности.

Добавлено через 1 минуту
Ещё смущает строка String itemname = new Integer(selectedItemPosition).toString() ;
0
0 / 0 / 0
Регистрация: 30.10.2014
Сообщений: 24
04.11.2014, 13:24  [ТС]
ActivityTwo
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
public class ActivityTwo extends Activity {
 
    @Override 
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        
        
        setContentView(R.layout.view);
        
        
        
        Bundle bundle = getIntent().getExtras();
        
        String itemname = "n" + bundle.getString("defStrID"); 
        // Dostavame retezec a tvorime jimeno zdroje
        
        
        Context context = getBaseContext(); 
        // Dostavame Context
        
        
        String text = readRawTextFile(context, 
                getResources().getIdentifier(itemname, "raw",  "com.example.Spiner"));
        
        
        WebView myWebView = (WebView) findViewById(R.id.webView);
        
        String summary = "<!Doctype html><html><head><meta charset=utf-8></head><body>"
                + text + "</body></html>";
        
        
        myWebView.loadData(summary, "text/html", "utf-8");
        
    }
    
    
    public static String readRawTextFile(Context cntx, int resID) // cteme text z raw
    
    {
        InputStream inputStream = cntx.getResources().openRawResource(resID);
        
        InputStreamReader inputreader = new InputStreamReader(inputStream);
        
        BufferedReader buffreader = new BufferedReader(inputreader);
        
        
        String line;
        
        StringBuilder text = new StringBuilder();
        
        try {
            while (( line = buffreader.readLine()) != null) {
                text.append(line);
                text.append('\n');
            }
            
        } catch (IOException e) {
            return null;
        }
        
            
            return text.toString(); 
}
        }
по замыслу должно получиться так:
1) есть боковое меню (которое выдвигается )
2) там 2 спинера, по тапу на спинер открывается и по нажатию на элемент должно перейти в ActivityTwo
3) оттуда 2 активити читает какую позицию именно нажали и открывает WebView на котором будут данные

Добавлено через 5 минут
MainActivity полностью
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
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
public class MainActivity extends Activity {
    
    DrawerLayout drawerLayout;
    View drawerView;
    
 
     String[] data = {"Spinach Salad with Bosc Pears, Cranberries, Red Onion, and Toasted Hazelnuts",
            "Kale Salad with Pinenuts, Currants and Parmesan",
            "Tomato-Watermelon Salad with Feta and Toasted Almonds",
            "Mediterranean Chicken Salad",
            "PAGE 1 TEST",
            "Sliced Steak with Arugula",
            "Creamy Potato Salad with Lemon and Fresh Herbs",
            "Asian Tuna Salad",};
     
     String[] data2 = {"Spinach Salad with Bosc Pears, Cranberries, Red Onion, and Toasted Hazelnuts",
            "Kale Salad with Pinenuts, Currants and Parmesan",
            "Tomato-Watermelon Salad with Feta and Toasted Almonds",
            "Mediterranean Chicken Salad",
            "PAGE 2 TEST",
            "Sliced Steak with Arugula",
            "Creamy Potato Salad with Lemon and Fresh Herbs",
            "Asian Tuna Salad"};
     
     ArrayAdapter<String> arrayAdapter;
      
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            drawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);
            drawerView = (View)findViewById(R.id.menu);
            
            
            // адаптер
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, data);
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            
            ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, data2);
            adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            
            Spinner spinner = (Spinner) findViewById(R.id.spinner);
            spinner.setAdapter(adapter);
            
            Spinner spinner2 = (Spinner) findViewById(R.id.spinner1);
            spinner2.setAdapter(adapter2);
            
            // заголовок
            spinner.setPrompt("Title");
            
            spinner2.setPrompt("Title");
            
            // выделяем элемент 
            spinner.setSelection(0);
            
            spinner2.setSelection(2);
            
            
            
            drawerLayout.setDrawerListener(myDrawerListener);
          
          drawerView.setOnTouchListener(new OnTouchListener() {
              @Override 
              public boolean onTouch(View v, MotionEvent event) {
                  
                  return true;
              }
          });
          
            
            
          /*  // устанавливаем обработчик нажатия
            spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
                
                
          @Override
          public void onItemSelected(AdapterView<?> parent, View view,
              int position, long id) {
            // Pozice elementu 
                
            /*  String itemname = new Integer(position).toString();
                
                Intent intent = new Intent();
                
                intent.setClass(MainActivity.this, ActivityTwo.class);
                
                Bundle b = new Bundle();
                
                // DefStrID obsahuje retezec, ktery zasleme prostrednictvim
                //ItemName v jine Activity
                
                
                b.putString("defStrID", itemname);
                
                intent.putExtras(b);
                
                // Intent
                
                startActivity(intent);*/
              
            /*  Toast.makeText(getBaseContext(), "Position = " + position, Toast.LENGTH_SHORT).show();
          }
          @Override
          public void onNothingSelected(AdapterView<?> arg0) {
          }
        }); */
          
          
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            public void onItemSelected(AdapterView<?> parent,
                    View itemSelected, int selectedItemPosition, long selectedId) {
                
                
                 Intent i = new Intent(MainActivity.this, ActivityTwo.class);
                 i.putExtra("defStrID", itemname);
                 startActivity(i);
                
            }
            public void onNothingSelected(AdapterView<?> parent) {
            }
        });
            
            
            spinner2.setOnItemSelectedListener(new OnItemSelectedListener() {
                
                
              @Override
            //public void onItemClick(AdapterView<?> parent, View view, 
                    //int position, long id{
              
              public void onItemSelected(AdapterView<?> parent, View view,
              int position, long id) {
           /*   // Pozice elementu 
                
                String itemname = new Integer(position).toString();
                
                Intent intent = new Intent();
                
                intent.setClass(MainActivity.this, ActivityTwo.class);
                
                Bundle b = new Bundle();
                
                // DefStrID obsahuje retezec, ktery zasleme prostrednictvim
                //ItemName v jine Activity
                
                
                b.putString("defStrID", itemname);
                
                intent.putExtras(b);
                
                // Intent
                
                startActivity(intent); */
                  
                  Toast.makeText(getBaseContext(), "Position = " + position, Toast.LENGTH_SHORT).show();
                  
              }
              @Override
              public void onNothingSelected(AdapterView<?> arg0) {
              }
            });
            
            
        }
        
        
        
        
        
        DrawerListener myDrawerListener = new DrawerListener(){
          
          @Override
          public void onDrawerStateChanged(int newState) 
          {
           String state;
           switch(newState)
           {
           case DrawerLayout.STATE_IDLE:
            state = "STATE_IDLE";
            break;
           case DrawerLayout.STATE_DRAGGING:
            state = "STATE_DRAGGING";
            break;
           case DrawerLayout.STATE_SETTLING:
            state = "STATE_SETTLING";
            break;
           default:
            state = "unknown!";
           }
          }
 
        @Override
        public void onDrawerClosed(View arg0) {
            // TODO Auto-generated method stub
            
        }
 
        @Override
        public void onDrawerOpened(View arg0) {
            // TODO Auto-generated method stub
            
        }
 
        @Override
        public void onDrawerSlide(View arg0, float arg1) {
            // TODO Auto-generated method stub
            
        }
      };
 
        
        
        
        
    }
0
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
04.11.2014, 14:07
Stormylks, понятно. В общем, что я хочу сказать. itemname вы теперь совсем не инициализируете, что плохо. Надо бы его инициализировать и вывести в Log, чтобы хоть увидеть, что там получается. Для преобразования в строку можно использовать, например, такой метод: String.valueOf. Кроме того, непонятно, зачем вам позиция, если можно взять значение элемента (подзабыл название, кажется, что-то типа selectedItem).
Идём дальше. Вы попробуйте поставить контрольные точки останова в нескольких местах ActivityTwo и запустить в Debug-режиме или поставьте несколько Log.i в разных местах и найдёте, в какой строке ломается программа. Может быть, здесь: String text = readRawTextFile(context,
getResources().getIdentifier(itemname, "raw", "com.example.Spiner"));?
1
349 / 240 / 34
Регистрация: 16.01.2010
Сообщений: 766
04.11.2014, 14:33
Цитата Сообщение от Stormylks Посмотреть сообщение
Поменял все равно не работает
Пробуйте добавить такую конструкцию
...
Java
1
2
3
 if(selectedItemPosition>0){
тут вызов активти
}
...
P.S. У меня что то такое было, причем старый проект - работает, новый - не хочет. Но я не стал вникать, как то сделал - оно заработало.
1
0 / 0 / 0
Регистрация: 30.10.2014
Сообщений: 24
04.11.2014, 17:15  [ТС]
Цитата Сообщение от Vladimirys Посмотреть сообщение
Пробуйте добавить такую конструкцию
Помогло, теперь приложение грузиться, но при клике в spinner на элемент вылетает, буду смотреть
0
349 / 240 / 34
Регистрация: 16.01.2010
Сообщений: 766
04.11.2014, 17:45
Выложите логи. Так же можно попробовать изменить условие.
1
0 / 0 / 0
Регистрация: 30.10.2014
Сообщений: 24
04.11.2014, 21:40  [ТС]
не все логи открываются почему-то вот что открылось

at com.example.spiner.ActivityTwo.onCreate( ActivityTwo.java:37)-

Code
1
2
String text = readRawTextFile(context, 
                getResources().getIdentifier(itemname, "raw",  "com.example.Spiner"));
- где то тут

at com.example.spiner.ActivityTwo.readRawTe xtFile(ActivityTwo.java:55)-

Code
1
InputStream inputStream = cntx.getResources().openRawResource(resID);
Добавлено через 3 минуты
вот я дурак, нашел я
Цитата Сообщение от Stormylks Посмотреть сообщение
com.example.Spiner
с большой написал, хотя сам проект с маленькой

Добавлено через 2 минуты
Спасибо вам за помощь
0
0 / 0 / 0
Регистрация: 07.12.2014
Сообщений: 3
09.12.2014, 00:22
Stormylks, а можете выложить код с xml-ками? маюсь с похожей задачей, только другого рода: как все-таки добавить spinner в drawer и как организовать Fragment, чтобы при клике переходил в мой другой activity/ там форма регистрации, а как совместить - не знаю.
0
0 / 0 / 0
Регистрация: 30.10.2014
Сообщений: 24
13.12.2014, 17:24  [ТС]
какие именно xml вас интересуют?
или можете уточнить что вы хотите точнее?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.12.2014, 17:24
Помогаю со студенческими работами здесь

Как найти Spinner из другого Activity и изменить выбранный в нем элемент?
Android Studio. У меня есть три кнопки на одном экране и спиннер на другом. Я пытаюсь найти спиннер, но выдает ошибку. Если поиск из...

Передать рисунок из textview в другое activity
Здравствуйте! В TextView методом setCompoundDrawablesWithIntrinsicBound создан рисунок. Его нужно передать в другое Activity, и что-то в...

Как передать ссылку на изображение в другое Activity
Привет, пытаюсь сделать что то типа ежедневника. столкнулся с проблемой. В общем. Имеется 1 Активити, на нем ImageView (смайлик), по...

Передать данные при клике на listview в другое activity
Подсксжите пожалуйста, как мне при клике на listview заполненный с помощью sdimplecursoradapter передеавать данные в другое activity для...

Передать объект из BaseAdapter по нажатию кнопки в другое activity через
Здравствуйте, помогите со следующей задачей: Есть объект с ценой и наименованием, описание провожу в отдельном классе Product (уже c...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 31.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 30.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru