Как использовать setContentView (int) из класса, который не расширяет действие

мне нужно вызвать setContentView (int) из моего основного действия из другого класса, который не расширяет действие.

в моем пользовательском классе у меня есть private Context context; var, который передается из Activity в конструкторе, но я не могу понять, как получить доступ к методам Activity с помощью context переменной.

3 ответов


Если ваш контекст является экземпляром класса Activity, простое приведение класса должно работать:

Activity a = (Activity) context;
a.setContentView(R.layout.your_layout);

одним из решений (может быть, не самым элегантным) является передача вызывающего действия другому классу, а не только контексту.


вам нужно будет передать ссылку на действие, которое вы используете.

что-то вроде этого

class ActivityA extends Activity{
   @Override
   public void onCreate(Bundle state){
      super.onCreate(state);
      ClassA myclass = new ClassA(this);
   }
}

и тогда класс A будет иметь:

class ClassA {
   public ClassA(Activity yourActivity){
      ... Get your view here ....
      yourActivity.setContentView(view);
      ... do more things...
   }
}