在活动中定义接口

时间:2013-09-03 06:13:30

标签: android interface android-activity

在我的android应用程序内部活动中,我定义了一个这样的界面:

 public interface sideFilterInterface
    {
        public void changeFilters(int layoutId);
    }

内部活动我像这样使用这个界面

@Override
public void onCreate(Bundle savedInstanceState) {
    mCallback = (sideFilterInterface) this;
    mCallback.changeFilters(R.layout.filter_details);
}

我在另一个片段中实现此接口。当我尝试使用此代码时,它会让我在此处投射mCallback = (sideFilterInterface) this;

时出错

如何做到这一点。难道我做错了什么。需要帮忙。谢谢。

1 个答案:

答案 0 :(得分:0)

如果您没有在活动中实现监听器,那么主要的是您正在尝试将您的Activity转换为监听器。

如果通过接口调用public void changeFilters(int layoutId),则代码将不会执行,因为接口中的方法是抽象的。您需要在活动中实现侦听器,然后在那里执行代码。类似的东西:

     public class YourActivity extends Activity implements sideFilterInterface{
            @Override
            public void onCreate(Bundle savedInstanceState) {
                 //some code
                 this.changeFilters(R.layout.filter_details);
            }
            @Override
            public void changeFilters(int layoutId) {
                //Implement here
           }
   }