2016-10-25 3 views
0

を作成するときに、私は私のMainActivityクラスでonChildClickListenerを設定しようとしている組み込み方法私はちょうど彼らがオプションを選択したときにトーストを表示したいが、私は以下のコードでエラーが発生します。それは「この」を認識しません。OnChildClickListener

私はこれはメソッドが組み込まれているためだと思っていますが、それを取り出して他の場所に宣言して "this"アクティビティを認識する方法はわかりません。

誰もが私が欠けているものを私に伝えることができますか?

onCreate(){ 
... 
eListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { 
     @Override 
     public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { 
      Toast.makeText(this, "message", Toast.LENGTH_SHORT).show(); 
      return false; 
     } 
    }); 

答えて

0

埋め込みメソッドをクラスから取り出すには、implementsキーワードを使用します。

https://developer.android.com/reference/android/widget/ExpandableListView.OnChildClickListener.html

IDEは、おそらく輸入を把握し、IDEは、ニース...だから私は、コードの一部が表示されないよ...あなたのためのスタブメソッドを行います。

public class Play extends Activity implements OnChildClickListener{ 
+0

は、実際に実装して実装されたメソッドが行ったように、他のフラグメントによって呼び出すことができるため、Javaのアンドロイドの私のお気に入りの一部であり、ここに。 http://stackoverflow.com/questions/19728510/application-crashes-when-i-set-an-onclicklistener/19729302#19729302は、簡単に別のクラスからメソッドをテストすることができます。 – danny117

0

作成したExpandableListView.OnChildClickListenerは、匿名の内部クラスです。

匿名内部クラスは、その外側のクラスのこのへの参照を持っています。あなたは外部クラスこれを使用する場合は、あなたはそうのような外部クラス名を前に付けする必要があります。

onCreate(){ 
... 
eListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { 
     @Override 
     public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { 
      Toast.makeText(MainActivity.this, "message", Toast.LENGTH_SHORT).show(); 
      return false; 
     } 
    }); 
関連する問題