Запуск другого действия без расширения суперкласса Activity - PullRequest
0 голосов
/ 17 ноября 2011

У меня есть класс View с некоторыми интерактивными растровыми изображениями, в методе onTouch я хочу инициировать новое действие при касании растровых изображений

Intent newintent = new Intent();
            newintent.setClass(view.getContext(),MainMenu.class);
            startActivity(newintent);

Поскольку класс не расширяет Activity, как можноначать деятельность без расширения Activity?текущая ошибка:

The method startActivity(Intent) is undefined for the type DrawView

Ответы [ 4 ]

5 голосов
/ 17 ноября 2011

При условии, что ваш MainMenu.class является Activity, и вы вызываете метод startActivity() из некоторого вида View, вам необходимо добавить Context, с которого будет запускаться ваш новый Activity.

В вашем случае это будет:

view.getContext().startActivity(newintent);
2 голосов
/ 17 ноября 2011

Вам нужен контекст, чтобы сделать что-то вроде этого должно быть в порядке.

Объявите контекст для вашего взгляда во главе вашего класса.

Context myContext = view.getContext();

И затем используйтеэто, чтобы начать свою деятельность.

Intent newintent = new Intent();
        newintent.setClass(myContext,MainMenu.class);
        myContext.startActivity(newintent);myContext.startActivity(newintent);
1 голос
/ 17 ноября 2011

Когда вы инициализируете свой класс View.В конструкторе вы передаете Context вашего класса активности, например,

View v = new View(context)

В вашем конструкторе класса Own View.Сделайте ссылку на этот контекст как объект уровня класса.

public class MyView extend View{
   private Context mContext = null;

   MyView(Context context){
        super(context);
        mContext = context;
   }

}

и при необходимости начать занятие.

mContext. startActivity(newintent);
0 голосов
/ 17 ноября 2011

Вы можете доставить действие, которое представление в шоу, к этому представлению. Конструктор представления может быть переписан как:

View(Contenxt , ..)

И будет использовать

context.start(...)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...