Android: startActivity () из AlertDialog - PullRequest
       25

Android: startActivity () из AlertDialog

2 голосов
/ 14 марта 2011

Я пытаюсь использовать кнопку в AlertDialog для просмотра веб-страницы.

Проблема в том, что этот AlertDialog находится внутри класса, который расширяет ItemizedOverlay и не расширяет Activity, поэтому Eclipse подчеркивает его ивыдает следующую ошибку:

Метод startActivity () не определен для типа new DialogInterface.OnClickListener () {}

Я хотел бы запустить действия из PositiveButton, NeutralButton и NegativeButton, но я не могу.

Если вам нужно больше контекста, основным действием является MapView с некоторым ItemizedOverlay, и я хотел бы запустить веб-страницу с указаниями или другим действием, которое выполняетчто.

Ответы [ 5 ]

6 голосов
/ 14 марта 2011

Создайте конструктор в классе, который содержит ваше предупреждение с Context объектом в качестве параметра.Присвойте его переменной контекста.

Используйте эту переменную контекста для создания намерения.

Intent intent = new Intent(mContext, "Your next activity to be shown");//mContext is the Context variable over here.
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);    
mContext.startActivity(intent);
2 голосов
/ 14 марта 2011

На самом деле ответ предоставляется вами в вашем вопросе. то есть startActivity не определено в функциях ClickListener. поэтому в функции oncreate инициализируйте глобальную переменную, например

Activity myActivity = this;

затем в onclicklistener, запустите другое действие с этого.

myActivity.startActivity(xxxxxxxx);

Это может быть один ответ.

1 голос
/ 14 марта 2011

Взгляните на это

В них вы пишете желаемый код внутри кнопки «Позитив». Вы можете начать действие, используя намерение.

startActivity(new Intent (YouPage.this,NewPage.class));
0 голосов
/ 14 марта 2011

Передайте контекст действия в конструкторе этого класса, создайте поле типа действия и сохраните контекст в этом действии, а затем

скажем

Activity activityClass;

и инициализируйте его из вашего конструктора

и начать действие с этого activiytClass

activityClass.startActivity ();

0 голосов
/ 14 марта 2011

Если у вас есть контекст, скажите context.startActivity();

, если у вас нет контекста, попробуйте получить его из getContext(); или getApplicationContext(); или getBaseContext();

...