2013-12-12 17 views
8

私はOnItemClickListenerでgetActivity()を呼び出すようにしようとしています:Android:OnItemClickListener()でgetActivity()を呼び出す方法

class ViewTest{ //called in a fragment 
setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int p, long i) { 
       ((MainActivity) getActivity()).makeResultsbarVisible(); 
... 
      } 

     }); 

}フラグメントで

、クラスは次のようにインスタンス化されます。

ViewTest editTest = new ViewTest(this); 

しかし、私はエラーを取得しているI修正できません:

The method getActivity() is undefined for the type new AdapterView.OnItemClickListener(){} 

getActivity onItemClick()の内部?ありがとう。

+0

Context変数を使用してmakeResultsbarVisible()を呼び出す...あなたは、フラグメントに使用していますか? –

+0

これはアクティビティかフラグメントかですか? – rahulritesh

+0

このクラスは、フラグメント( – user2212461

答えて

25

Fragmentクラスまたはそれを拡張するクラス内でgetActivityしか使用できません。もしあなたonItemClickListenerActivity使用MainActivity.this

+0

すばらしい解決策! MainActivityクラスの内部のListener、MainActivityの現在のインスタンスから呼び出されたとき、MainActivity.thisが正確に何を与えるのですか? – pepper42

0

使用Class_name.thisまたはContext変数を定義しています。その後、可能ならば、あなたの完全なクラスのコードを投稿

と同様に、

Context c = this; 

c.makeResultsbarVisible();