MainActivity无法转换界面

时间:2018-10-04 08:30:41

标签: java android interface callback

MainActivity中,我具有界面

   public interface MyListener{
        void myMethod(boolean done);
    }

但是当我尝试投射onCreate

myListener = (MyListener) this;

我得到了java.lang.ClassCastException

我在MainActivity中也有变量:

private MyListener mylistener;

我应该在这里解决什么?

1 个答案:

答案 0 :(得分:0)

如果您想执行以下操作,则MainActivity必须实现interface

myListener = (MyListener) this;

所以您的代码应该像这样

public class MainActivity extends AppCompatActivity implements MyListener {}

编辑

在您的Fragment中添加:

public class MyFragment extends Fragment {

private MyListener mListener;

@Override
    public void onAttach(Context context) {
        super.onAttach(context);
        try {
            mListener = (MyListener) context;
        } catch (ClassCastException e) {
            throw new ClassCastException(context.toString()
                    + " must implement MyListener");
        }
    }

然后在您的MainActivity

public class MainActivity extends AppCompatActivity implements MyListener {
...
@Override
    public void myMethod(Boolean done) {
        //Stuff with this 
    }