###接口回调、自定义观察者模式和EvnetBus
众所周知,android中经常要用到activity、fragment中互相传递参数。或者framgent中的数据改变,另外的fragment或者activity中需要跟着改变。这个时候 通常都会用接口的方式实现。
}
###接口回调
- 定义一个接口
public interface OnShakeListener {
void onShakeClistenerClick(View v, String data);
声明
private OnShakeListener mOnShakeListener;
绑定(我自己的叫法,勿喷)
public void setOnShakeListner(OnShakeListener listner){ this.mOnShakeListener = listner; }
使用
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mOnShakeListener.onShakeClistenerClick(tv,tv.getText().toString());
}
});
其实还有个另外的写法
同样是定义接口不变
public interface OnShakeListener { void onShakeClistenerClick(View v, String data); }
直接使用
context是成员变量
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(UIUtils.getContext(), mDatas.get(index), Toast.LENGTH_SHORT).show();
if (context instanceof OnShakeListener) {
((OnShakeListener) context).onShakeClistenerClick(tv, tv.getText().toString());
}
}
});