给我的傻徒弟写的,有些新的安卓新萌 不会用广播,也不会用观察者模式,使用抽象方法也可跨越界面进行操作通知更新ui等。尽量写的详细一点 给新萌看的
这个的用处就相当于你又两个java文件A和B 你需要从B的项目中通知A去修改ui或者做一些别的操作就可以用到一下方法
这个方法本人用的最多的地方就是activity和adapter之前的关联,如有些点击事件写在adapter里面 然后点击后无法更新ui什么什么的用这个方法可以完全解决
首先是Bjava
其实方法很简单 首先创建interface
public void mainadapter extends BaseAdapter{ //这里就先写个mainadapter吧 为了下面的操作
private IAddListListener listener;//声明成员变量
public interface IAddListListener {//创建抽象类
void deleteBank();//添加抽象方法,可任意添加多个可带参数如void test(String cibtext);往下加就行
}
然后在写个注册关联用的 看不懂没关系 往下看
public void setIDeleteListener(IAddListListener listener) {
this.listener = listener;
}
点击事件 点击触发抽象类中的deleteBank()方法
View.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
listener.deleteBank();
}});
接下来需要在需要关联抽象类的另外的java界面 集成抽象方法
Ajava文件
public class mainactivity extends BaseAdapter implements BaseDelegate
创建关联的方法
mainadapter mainadapter = new mainadapter();//new一个Bjava的对象
mainadapter.setIDeleteListener(this)//这里必须集成抽象类才可以写this 注册
会自动集成刚才抽象类的方法 在这里面就收到了刚才发的通知 可以进行操作或者更新ui
@Override
public void deleteBank() {
}