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