2016-11-05 7 views
0

BaseAdapterでViewgroupを使用しようとしています。ここに私のコード私はAndroidのBaseadapterでビューグループを使用できません

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); 

あるしかし、私は「()メソッドは、GetWindowを解決することはできません」のようなthis.getWindow()でエラーに直面しています。 Baseadpaterでこれを使用する方法。しかし、それは活動で働いています。このようなアダプタで

+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); 

注: - 代わりのthiscontextを使用....

+0

その後、私は文脈でエラーが発生しています –

+1

あなたはあなたの 'adapter constructor'で' context'を渡すことができますか、ここで完全な 'adapter'を投稿することができます..... – sushildlh

+0

' Context'クラスは 'getWindow()'メソッドを持たず、 'Activity'はそれを持っています – pskink

0

この

((YourACtivity) getContext()).getWindow() 
0

があなたのMainActivity.thisまたは何あなたのActivityのクラス名であるにthisを変更してみてください試してみてください。

これはあなたのコードになるだろうが、のようなものを見て:

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); 

    ... 
} 
関連する問題