创建OnChildClickListener时的嵌入方法

时间:2016-10-25 22:38:50

标签: java android

我试图在我的MainActivity类中设置一个onChildClickListener我只想在选择一个选项时显示一个toast,但是我在下面的代码中出错了。它没有认识到这个"。

我猜这是因为这个方法是嵌入的,但是我无法弄清楚如何把它拿出来并在其他地方宣布它以便它能识别出这个"这个"活动。

有人可以告诉我我错过了什么吗?

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

2 个答案:

答案 0 :(得分:0)

要将嵌入式方法取出并进入类,请使用implements关键字。

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

IDE可能会找出导入,IDE会为你制作存根方法......很好......所以我没有显示那部分代码。

public class Play extends Activity implements OnChildClickListener{

答案 1 :(得分:0)

您创建的ExpandableListView.OnChildClickListener是一个匿名内部类。

匿名内部类可以引用它们的外部类。当你想使用外类时#39;这个,你需要在它前面添加外部类名,如下所示:

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