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

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

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

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

04.11.2014, 01:13. Просмотров 994. Ответов 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) {
            }
        });
Ошибки как таковой нет, но приложение закрывается
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vladimirys
296 / 193 / 21
Регистрация: 16.01.2010
Сообщений: 547
04.11.2014, 01:29     Spinner переход в другое Activity #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
 
            }
        });
Stormylks
0 / 0 / 0
Регистрация: 30.10.2014
Сообщений: 24
04.11.2014, 11:41  [ТС]     Spinner переход в другое Activity #3
Цитата Сообщение от Vladimirys Посмотреть сообщение
Как то у вас всего, много и повторяется
Вот так, все должно работать:
Поменял все равно не работает
Sony17
28 / 28 / 6
Регистрация: 24.05.2013
Сообщений: 157
04.11.2014, 12:30     Spinner переход в другое Activity #4
Stormylks,

Не по теме:


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



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

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

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

Добавлено через 1 минуту
Ещё смущает строка String itemname = new Integer(selectedItemPosition).toString();
Stormylks
0 / 0 / 0
Регистрация: 30.10.2014
Сообщений: 24
04.11.2014, 13:24  [ТС]     Spinner переход в другое Activity #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
            
        }
      };
 
        
        
        
        
    }
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
04.11.2014, 14:07     Spinner переход в другое Activity #8
Stormylks, понятно. В общем, что я хочу сказать. itemname вы теперь совсем не инициализируете, что плохо. Надо бы его инициализировать и вывести в Log, чтобы хоть увидеть, что там получается. Для преобразования в строку можно использовать, например, такой метод: String.valueOf. Кроме того, непонятно, зачем вам позиция, если можно взять значение элемента (подзабыл название, кажется, что-то типа selectedItem).
Идём дальше. Вы попробуйте поставить контрольные точки останова в нескольких местах ActivityTwo и запустить в Debug-режиме или поставьте несколько Log.i в разных местах и найдёте, в какой строке ломается программа. Может быть, здесь: String text = readRawTextFile(context,
getResources().getIdentifier(itemname, "raw", "com.example.Spiner"));?
Vladimirys
296 / 193 / 21
Регистрация: 16.01.2010
Сообщений: 547
04.11.2014, 14:33     Spinner переход в другое Activity #9
Цитата Сообщение от Stormylks Посмотреть сообщение
Поменял все равно не работает
Пробуйте добавить такую конструкцию
...
Java
1
2
3
 if(selectedItemPosition>0){
тут вызов активти
}
...
P.S. У меня что то такое было, причем старый проект - работает, новый - не хочет. Но я не стал вникать, как то сделал - оно заработало.
Stormylks
0 / 0 / 0
Регистрация: 30.10.2014
Сообщений: 24
04.11.2014, 17:15  [ТС]     Spinner переход в другое Activity #10
Цитата Сообщение от Vladimirys Посмотреть сообщение
Пробуйте добавить такую конструкцию
Помогло, теперь приложение грузиться, но при клике в spinner на элемент вылетает, буду смотреть
Vladimirys
296 / 193 / 21
Регистрация: 16.01.2010
Сообщений: 547
04.11.2014, 17:45     Spinner переход в другое Activity #11
Выложите логи. Так же можно попробовать изменить условие.
Stormylks
0 / 0 / 0
Регистрация: 30.10.2014
Сообщений: 24
04.11.2014, 21:40  [ТС]     Spinner переход в другое Activity #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 минуты
Спасибо вам за помощь
Mitiya
0 / 0 / 0
Регистрация: 07.12.2014
Сообщений: 3
09.12.2014, 00:22     Spinner переход в другое Activity #13
Stormylks, а можете выложить код с xml-ками? маюсь с похожей задачей, только другого рода: как все-таки добавить spinner в drawer и как организовать Fragment, чтобы при клике переходил в мой другой activity/ там форма регистрации, а как совместить - не знаю.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2014, 17:24     Spinner переход в другое Activity
Еще ссылки по теме:

Android Переход с элемента listView на activity
Переход к Activity по выбранному пункту из спиннера Android
Android Переход на другой Activity
Переход из Fragment в Activity Android
Передать данные при клике на listview в другое activity Android

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

Или воспользуйтесь поиском по форуму:
Stormylks
0 / 0 / 0
Регистрация: 30.10.2014
Сообщений: 24
13.12.2014, 17:24  [ТС]     Spinner переход в другое Activity #14
какие именно xml вас интересуют?
или можете уточнить что вы хотите точнее?
Yandex
Объявления
13.12.2014, 17:24     Spinner переход в другое Activity
Ответ Создать тему
Опции темы

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