天天看點

Android中Button的onClick實作方法。

Android中Button的onClick實作方法大概是這樣的吧!

剛剛是看到有代碼将一個接口傳給了一個函數(是一個構造函數,沒考證是不是也可以傳給一個普通函數),之後我不懂為什麼,就百度了一下。

發現了這樣一個文章:http://blog.csdn.net/sunshine_mood/article/details/49874039

========================================

内容如下,轉載以上網址:

Android 通過接口傳值

接口傳值簡單了說,就是在需要傳值的那方定義接口,在接收資料的那方實作接口,資料就在需要實作的那個方法裡,千萬記住傳值方的Listener一定是接收資料方的Listener。

第一步:定義接口類:
public interface Listener {
    void send(String s);
}

第二步:傳遞類發送資料:
public class Data {
    public Listener mListener;//接口

    public Data(Listener mListener) {
        this.mListener = mListener;
    }
    public void sends(){
        mListener.send("越努力越成功,越聚貴人!");//開始發送資料
    }
}

第三步:接受類接收資料:
public class MainActivity extends Activity implements Listener{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Data data = new Data(this);//執行個體化data類
        data.sends();//啟動發送
    }

    @Override
    public void send(String s) {
        Log.e("tag: ",s);
    }
}
           
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
Android中Button的onClick實作方法。
Android中Button的onClick實作方法。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

========================================

通過這個,我終于明白了Button的onClick實作方法:

據方的Listener。

第一步:定義接口類:
                
public interface OnClickListener {
    void onClick(View v);
}      
第二步:傳遞類發送資料:public class Button{ public OnClickListener mOnClickListener ;//接口
public Button(Context context, OnClickListener l) {
    		this(context, null);      
this.mOnClickListener = l;
	}      
public void setOnClickListener(){()(){ mListener.onClick(v);//開始發送資料 }}第三步:接受類接收資料:public class MainActivity extends Activity implements OnClickListener{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button= new Button(this);//執行個體化data類 data.setOnClickListener();//啟動發送 } @Override public void onClick(){(String s) { Log.e("tag: ",s); }} 這段代碼不能運作,隻是由上面得到了啟發,原來直接看到
public interface OnClickListener {
    void onClick(View v);
}      
這段代碼,就想不通為什麼點選了按鈕就能調用,現在基本懂了。 其實腦子還是有些暈,在此記錄,以備以後檢視。 算是抛磚引玉吧!
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34