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

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

Войти
Регистрация
Восстановить пароль
 
Stormylks
0 / 0 / 0
Регистрация: 30.10.2014
Сообщений: 24
#1

Spinner переход в другое Activity - Программирование Android

04.11.2014, 01:13. Просмотров 1098. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2014, 01:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Spinner переход в другое Activity (Программирование Android):

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

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

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

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

Переход на другой Activity - Программирование Android
Здравствуйте. Написал вроде простой код public void onClickBP(View view) { Intent intent= new Intent(this,...

Переход из Fragment в Activity - Программирование Android
как реализовать переход из Fragment В activity в фрагменте кнопка при нажатии которой происходит переход в активити

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Vladimirys
308 / 205 / 25
Регистрация: 16.01.2010
Сообщений: 587
04.11.2014, 01:29 #2
Как то у вас всего, много и повторяется
Вот так, все должно работать:
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
Stormylks
0 / 0 / 0
Регистрация: 30.10.2014
Сообщений: 24
04.11.2014, 11:41  [ТС] #3
Цитата Сообщение от Vladimirys Посмотреть сообщение
Как то у вас всего, много и повторяется
Вот так, все должно работать:
Поменял все равно не работает
0
Sony17
28 / 28 / 6
Регистрация: 24.05.2013
Сообщений: 157
04.11.2014, 12:30 #4
Stormylks,

Не по теме:


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



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

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

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

Добавлено через 1 минуту
Ещё смущает строка String itemname = new Integer(selectedItemPosition).toString();
0
Stormylks
0 / 0 / 0
Регистрация: 30.10.2014
Сообщений: 24
04.11.2014, 13:24  [ТС] #7
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
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
04.11.2014, 14:07 #8
Stormylks, понятно. В общем, что я хочу сказать. itemname вы теперь совсем не инициализируете, что плохо. Надо бы его инициализировать и вывести в Log, чтобы хоть увидеть, что там получается. Для преобразования в строку можно использовать, например, такой метод: String.valueOf. Кроме того, непонятно, зачем вам позиция, если можно взять значение элемента (подзабыл название, кажется, что-то типа selectedItem).
Идём дальше. Вы попробуйте поставить контрольные точки останова в нескольких местах ActivityTwo и запустить в Debug-режиме или поставьте несколько Log.i в разных местах и найдёте, в какой строке ломается программа. Может быть, здесь: String text = readRawTextFile(context,
getResources().getIdentifier(itemname, "raw", "com.example.Spiner"));?
1
Vladimirys
308 / 205 / 25
Регистрация: 16.01.2010
Сообщений: 587
04.11.2014, 14:33 #9
Цитата Сообщение от Stormylks Посмотреть сообщение
Поменял все равно не работает
Пробуйте добавить такую конструкцию
...
Java
1
2
3
 if(selectedItemPosition>0){
тут вызов активти
}
...
P.S. У меня что то такое было, причем старый проект - работает, новый - не хочет. Но я не стал вникать, как то сделал - оно заработало.
1
Stormylks
0 / 0 / 0
Регистрация: 30.10.2014
Сообщений: 24
04.11.2014, 17:15  [ТС] #10
Цитата Сообщение от Vladimirys Посмотреть сообщение
Пробуйте добавить такую конструкцию
Помогло, теперь приложение грузиться, но при клике в spinner на элемент вылетает, буду смотреть
0
Vladimirys
308 / 205 / 25
Регистрация: 16.01.2010
Сообщений: 587
04.11.2014, 17:45 #11
Выложите логи. Так же можно попробовать изменить условие.
1
Stormylks
0 / 0 / 0
Регистрация: 30.10.2014
Сообщений: 24
04.11.2014, 21:40  [ТС] #12
не все логи открываются почему-то вот что открылось

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

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

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

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

Добавлено через 2 минуты
Спасибо вам за помощь
0
Mitiya
0 / 0 / 0
Регистрация: 07.12.2014
Сообщений: 3
09.12.2014, 00:22 #13
Stormylks, а можете выложить код с xml-ками? маюсь с похожей задачей, только другого рода: как все-таки добавить spinner в drawer и как организовать Fragment, чтобы при клике переходил в мой другой activity/ там форма регистрации, а как совместить - не знаю.
0
Stormylks
0 / 0 / 0
Регистрация: 30.10.2014
Сообщений: 24
13.12.2014, 17:24  [ТС] #14
какие именно xml вас интересуют?
или можете уточнить что вы хотите точнее?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2014, 17:24
Привет! Вот еще темы с ответами:

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

Переход перелистыванием между Activity - Программирование Android
Изучением программирования под андроид занялся совсем недавно, и для начала решил написать простое приложение: 2 странички переход между...

Переход с элемента listView на activity - Программирование Android
никак не возьму в толк, каким образом можно реализовать переход на новое activity с элемента listView, чтобы при нажатии на 1 строку...

Переход между fragment и activity - Программирование Android
Доброй ночи) возникла необходимость обратного перехода от активити во фрагмент, при этом ничего обратно передать не надо. То есть...


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

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

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