1

アクティビティ内の私の Android アプリケーションでは、次のような 1 つのインターフェイスを定義しています。

 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;

これを行う方法。私は何か間違ったことをしていますか?助けが必要。ありがとうございました。

4

1 に答える 1

0

主なことは、アクティビティにリスナーを実装していない場合、アクティビティをリスナーにキャストしようとしていることです。

インターフェイスを介してを呼び出す場合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
           }
   }
于 2013-09-03T06:29:58.187 に答える