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

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

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

Смена активити - Программирование Android

14.04.2015, 10:36. Просмотров 1199. Ответов 5
Метки нет (Все метки)

Пишу программу с общей сутью - есть список городов, при выборе города из списка должен делаться переход на новый активити этого города... Меню с выбором я еще как-то прикрутил, но вот с переходом на новый активити беда. Intent не помогает и я догадываюсь, что это из-за недостатка базовых знаний о механизме, в связи с этим прошу помочь с реализацией перехода в новый активити
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
import android.app.Activity;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.PopupMenu;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
 
 
public class MainActivity extends Activity {
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
 
 
        Button button = (Button) findViewById(R.id.button);
        button.setOnClickListener(viewClickListener);
 
 
    }
 
    View.OnClickListener viewClickListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            showPopupMenu(v);
        }
    };
 
    public void showPopupMenu(View v) {
        PopupMenu popupMenu = new PopupMenu(this, v);
         popupMenu.getMenuInflater().inflate(R.menu.goroda,
         popupMenu.getMenu());
 
        popupMenu
                .setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
 
                    @Override
                    public boolean onMenuItemClick(MenuItem item) {
                       
                        switch (item.getItemId()) {
 
                            case R.id.Pinsk:
                                Toast.makeText(getApplicationContext(),
                                        "Вы выбрали Пинск",
                                        Toast.LENGTH_SHORT).show();                               
                                return true;
                            case R.id.Minsk:
                                Toast.makeText(getApplicationContext(),
                                        "Вы выбрали Минск",
                                        Toast.LENGTH_SHORT).show();
                                return true;
                            case R.id.Brest:
                                Toast.makeText(getApplicationContext(),
                                        "Вы выбрали Брест",
                                        Toast.LENGTH_SHORT).show();
                                return true;
                            default:
                                return false;
                        }
                    }
                });
 
        popupMenu.setOnDismissListener(new PopupMenu.OnDismissListener() {
 
            @Override
            public void onDismiss(PopupMenu menu) {
                
            }
        });
        popupMenu.show();
 
 
    }
 
 
 
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2015, 10:36
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Смена активити (Программирование Android):

На телефоне highscreen 3 на всех активити происходит быстрый самовозврат к главной активити - Программирование Android
Сделал меню в виде ListView. При клике на меню запускаются активити. На эмуляторе работает, на телефоне моем LG все работает. На телефоне...

Как вызвать метод в активити классе из обычного не активити класса? - Программирование Android
Есть активити в котором вводятся логин и пароль. При нажатии кнопки "войти" в отдельном классе "сокетсервер"(+в отдельном потоке)...

Изменение параметров активити из другого активити - Программирование Android
Как сделать так чтобы из первого активити поменять final ImageView img=(ImageView)findViewById(R.id.image1); ...

Вызов новой активити не из класса активити - Программирование Android
Есть 4 класса: 1) WelcomeActivity; 2) MainActivity; 3) PopUpActivity; 4) Client. Программа работает с сервером и получает...

Отображение активити поверх другого активити - Программирование Android
Ребят подскажите пожалуйста как такое сделать. Есть активити с картой, по нажатию кнопки настройки, нужно открыть активити с настройками,...

Активити - Программирование Android
Не могу вызвать второе Activity

5
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 736
14.04.2015, 11:05 #2
а где же Intent который не помогает?
0
poy4eg
0 / 0 / 0
Регистрация: 21.03.2015
Сообщений: 40
14.04.2015, 11:43  [ТС] #3
Цитата Сообщение от Valakin Посмотреть сообщение
а где же Intent который не помогает?

Java
1
2
3
4
5
6
7
8
case R.id.Pinsk:
                                Toast.makeText(getApplicationContext(),
                                        "Вы выбрали Пинск",
                                        Toast.LENGTH_SHORT).show();
                                Intent intent = new Intent(this, Pinsk.class);
                                startActivity(intent);
                                
                                return true;
предположим вот... ошибку бьет следующего харктера

XML
1
2
3
4
5
6
7
8
Error:(61, 49) error: no suitable constructor found for Intent(<anonymous OnMenuItemClickListener>,Class<Pinsk>)
constructor Intent.Intent(String,Uri) is not applicable
(argument mismatch; <anonymous OnMenuItemClickListener> cannot be converted to String)
constructor Intent.Intent(Context,Class<?>) is not applicable
(argument mismatch; <anonymous OnMenuItemClickListener> cannot be converted to Context)
Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output
Error:Execution failed for task ':allbelarus:compileDebugJava'.
> Compilation failed; see the compiler error output for details.
Добавлено через 20 минут
изменил
Java
1
Intent intent = new Intent(this, Pinsk.class);
на
Java
1
Intent intent = new Intent(MainActivity.this, Pinsk.class);
и все заработало... может кто объяснит в чем суть?
0
Armagedo
209 / 209 / 60
Регистрация: 22.08.2014
Сообщений: 644
14.04.2015, 12:30 #4
Цитата Сообщение от poy4eg Посмотреть сообщение
может кто объяснит в чем суть?
Дsк там же всё сказано - указатель this ссылается на объект OnMenuItemClickListener(), а конструктор ждёт Context...
1
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 736
14.04.2015, 13:55 #5
this.переменная понятно что такое,
а что такое activity.this? это контекст?
0
Armagedo
209 / 209 / 60
Регистрация: 22.08.2014
Сообщений: 644
14.04.2015, 15:02 #6
Цитата Сообщение от Valakin Посмотреть сообщение
а что такое activity.this? это контекст?
Нет там такого.
Там есть MainActivity.this, используемый для ссылки на объект внешнего класса (MainActivity) по отношению к данному (OnMenuItemClickListener).

Поскольку MainActivity - это наследник класса Activity, а Activity - через цепочку наследований оказывается наследником Context, то MainActivity - это экземляр и класса Context.
Ну, и, скармливая его вместо Context, ничего страшного не происходит, а происходит не страшное, а то, что и нужно.
1
14.04.2015, 15:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2015, 15:02
Привет! Вот еще темы с ответами:

Активити и фрагмент - Программирование Android
в фрагменте у меня есть функция public void setBmp(Bitmap bmp) { } в активити я использую Fragment f =...

Абстрактная активити - Программирование Android
Здравствуйте. Хочу сделать активити для входа в приложение (ввод логина, пароля, проверка этого всего на сервере и т.д.). И хочу...

Загрузка активити - Программирование Android
Добрый день! Сегодня один пользователь пожаловался на долгий запуск программы(3-5 секунд). При старте программы загружается main...

Блокировка активити - Программирование Android
Возможно ли такое когда активити запускается а его блокируют и пользователь не может пользоваться интерфейсами: кнопками из layouta!...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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