2016-11-05 22 views
0

Я пытаюсь использовать Viewgroup в BaseAdapter. Вот мой кодЯ не могу использовать группу просмотра в Baseadapter в Android

private ViewGroup createAnimLayout() { 
     ViewGroup rootView = (ViewGroup) this.getWindow().getDecorView(); 
     LinearLayout animLayout = new LinearLayout(con); 
     LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
       LinearLayout.LayoutParams.MATCH_PARENT, 
       LinearLayout.LayoutParams.MATCH_PARENT); 

Но я столкнулся ошибку в this.getWindow(), как «не может решить метод GetWindow()». Как использовать это в Baseadpater. Но он работает в Activity.

+0

Что такое ошибка? – AbhayBohra

+0

Ошибка, упомянутая в редакции –

+1

Я выполняю анимацию отсюда. так что я использую его –

ответ

1

использование адаптера, как это ...

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

private Activity ref; 

public MyAdapter(Activity ref){ 
this.ref=ref; 
} 

и использовать, как это ..... .

private ViewGroup createAnimLayout() { 
     ViewGroup rootView = (ViewGroup) ref.getWindow().getDecorView(); 
     LinearLayout animLayout = new LinearLayout(con); 
     LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
       LinearLayout.LayoutParams.MATCH_PARENT, 
       LinearLayout.LayoutParams.MATCH_PARENT); 

Примечание: - вместо this использовать context ....

+0

. Тогда я получаю ошибку в контексте –

+1

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

+0

'Context' класс не имеет метода 'getWindow()', 'Activity' имеет его – pskink

0

Попробуйте изменить this к вашему MainActivity.this или что это имя класса вашего Activity.

Это сделает ваш код выглядит примерно так:

private ViewGroup createAnimLayout() { 
    ViewGroup rootView = (ViewGroup) MainActivity.this.getWindow().getDecorView(); 
    LinearLayout animLayout = new LinearLayout(con); 
    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
      LinearLayout.LayoutParams.MATCH_PARENT, 
      LinearLayout.LayoutParams.MATCH_PARENT); 

    ... 
}