2016-11-08 5 views
0

これは私の状況です。 リスナーをビュージェネレータに渡して使用したいと思います。問題は私のリスナーにありますが、私はそのビューを使ってデータを取得したいと思います。どのようにねじれている... リスナーが接続する必要があるインターフェイスのようなビューを事前定義する方法ですか?このリスナーの問題でViewを作成するメソッドにリスナーを渡します。

 AdapterView.OnItemSelectedListener listener = new AdapterView.OnItemSelectedListener() { 

      @Override 
      public void onItemSelected(AdapterView<?> adapterView, View view, int pos, long l) { 

       //but I can not do this and use spinner cause it is not defined 
       String text = spinner.getSelectedStrings().toString(); 

      } 

      @Override 
      public void onNothingSelected(AdapterView<?> adapterView) {} 
     }; 

generateSpinner(attributes, listener); 

私が見るとプレゼンターために作成とロジックを分離しなければならない原因は、私はアンドロイドでMVCプロジェクトに取り組んでいると、この問題は、そこから出てきます。私の発表者は、特定のロジックを持つスピナーを生成するように強制します。

+0

このサンプルリポジトリを使用すると、短剣を使ったMVP混合について詳しく知ることができます。http://github.com/mmirhoseini/marvel –

+0

@MohsenMirhoseiniArgiありがとう – Kenji

答えて

0

質問の半分以上は自分自身で解決しました。例えば、

MyViewCallback callback; 

// ... on some action 
callback.run(this); 

あなたを - あなたはこのinterfaceのインスタンスを保存し、必要にいつでもあなたのViewの範囲からそのrun()メソッドを呼び出すことができ、今

public interface MyViewCallback 
{ 
    void run(View view); 
} 

:このようなインターフェイスを作成しますこのcallbackのセッターを作成し、それを使ってコールバックを登録することができます。

関連する問題