2016-11-08 37 views
0

這是我的情況: 我想將偵聽器傳遞給視圖生成器以使用它。但問題出在我的聽衆中,我想使用該視圖來獲取一些數據。一些如何扭曲... 是一種預先定義一個像監聽器應該附加到一個接口的視圖的方法?將偵聽器傳遞給創建具有此偵聽器問題的視圖的方法

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

我在android系統工作的MVC項目,這個問題從那裏走出來,因爲我要分開製作和邏輯來查看和演示。所以我的發言人強制觀點用給定的邏輯來生成一個微調。

+0

使用此示例存儲庫,您可以瞭解更多關於MVP混合物與匕首:http://github.com/mmirhoseini/marvel –

+0

@MohsenMirhoseiniArgi非常感謝我會檢查出來 – Kenji

回答

0

你自己回答了一半以上的問題。作出這樣的接口:

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

現在,你可以存儲這個interface的情況下,每當你需要從View的範圍內調用其run()方法 - 例如,

MyViewCallback callback; 

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

你可以爲此callback創建一個setter並使用它來註冊回調。