Android中接口的回调,Activity或Fragment与普通类之间的互相调用
来源:互联网 发布:淘宝热搜词在哪里看 编辑:程序博客网 时间:2024/04/29 08:44
Android中接口的回调,Activity或Fragment与普通类之间的互相调用
废话不多说,你查回调说明你遇到了相同的问题,这里是我根据我的理解做的最简单的回调Demo,Activity与普通类之间的回调,下边有代码,拷过去直接运行
1.创建一个接口
/** 对外提供状态信息的接口 */
public interface InterFace {
public void show();
public String getData(String str);
}
2.在普通类CallBack中定义接口
public InterFace ife;
3.在普通类CallBack中定义接口对象入住
public void setCallBackListener(InterFace ife){
this.ife= ife;
}
4.在普通类CallBack中定义一个普通方法,用于调用Activity中的方法
public void showData(){
Log.i("测试","-------11111111111111------");
str = "启迈斯";
//调用接口中的方法,接口中的方法在哪个地方实现,就调用那个方法
// 这里接口是在MainActivity中实现,所以调用MainActivity中的那个接口实现的方法
ife.show();
ife.getData(str);
}
6.在Activity中定义Callback,并实例化
Callbackmy cb= new Callback();
7.创建监听,用于监听是否普通类要调用该方法
cb.setCallBackListener(newInterFace() {
@Override
public voidshow() {
Log.i("测试","接口中的方法show");
//由普通类调用Activity的方法
showMainActivity();
}
@Override
publicString getData(String str) {
Log.i("测试","接口中的方法 "+ str);
return null;
}
});
8.在Activity创建一个普通方法,供普通类Callbackmy 调用
//这是Activity中的方法,由普通类调用
public void showMainActivity(){
Log.i("测试","这是普通类调用的方法");
}
9.这里逻辑已经完成,详情看DEMO
下边是代码
一 这是接口
/**
* Created by lenovo on 2016/9/13.
*/
public interface InterFace {
public void show();
public String getData(String str);
}
二 这是一个普通类
import android.util.Log;/** * Created by lenovo on 2016/9/13. */public class Callback{ public InterFace ife; //用于向Activity传递的参数 String str; //定义接口入住对象 public void setCallBackListener(InterFace ife){ this.ife = ife; } /** * Activity 中调用这个方法,实现Activity调用普通类方法 */ public void showData(){ Log.i("测试","这里是有Activity调用"); str = "启迈斯"; //调用接口中的方法,接口中的方法在哪个地方实现,就调用那个方法 // 这里是在MainActivity中,所以调用MainActivity中的那个接口实现的方法 ife.show(); ife.getData(str); }}
三 这是MainActivity
import android.app.Activity;import android.os.Bundle;import android.util.Log;public class MainActivity extends Activity{ Callback cb; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); cb = new Callback(); cb.setCallBackListener(new InterFace() { @Override public void show() { Log.i("测试","接口中的方法show"); //由普通类调用Activity的方法 showMainActivity(); } @Override public String getData(String str) { Log.i("测试","这是由普通类传过来的值 " + str); return null; } }); cb.showData(); //调用普通类中的方法 setContentView(R.layout.activity_main); } //这是Activity中的方法,由普通类调用 public void showMainActivity(){ Log.i("测试","这是普通类调用的方法"); }}
代码是可以运行的,直接拷过去运行就行了
- Android中接口的回调,Activity或Fragment与普通类之间的互相调用
- 回调接口实现Activity与Fragment之间的通信
- Fragment与Activity之间的通讯(解决Android中Fragment调用startactivityforresult不能返)
- Fragment跟Activity之间的通信(互相调用方法)
- Android中Fragment和Activity之间的通信(含接口回调)
- Android Ndk中C与JAVA之间的互相调用
- Unity3d 与 Android之间的互相调用
- Android中Fragment与Fragment,Fragment与Activity之间的通信
- android Activity与Fragment之间的通信
- Fragment与Activity之间的传值和接口回调
- android开发中fragment的引用以及fragment与activity之间通信的概述
- android开发fragment、Activity与Activity之间的值传递
- Fragment和Activity之间的接口
- android中fragment与activity之间通信
- Fragment的生命周期以及跟Activity之间互相传值小总结
- Fragment的生命周期以及跟Activity之间互相传值小总结
- fragment与activity之间的回调,用于数据更新操作(是fragment向activity里传值)
- Android中Webview与javascript的交互之间的互相调用
- H5 canvas 绘制五星红旗
- C++ 实现unicode到utf-8的转码
- 关于jquery中html()、text()、val()的区别
- 第十四章 上机练习1
- XML04-DOM4J解析xml文件
- Android中接口的回调,Activity或Fragment与普通类之间的互相调用
- PHP codeigniter框架
- Java线程总结(六):并发包------线程同步Lock
- 平衡三进制(可推广到n进制)
- 22. Generate Parentheses
- 使用glide和volley创建自己的网络图库
- jdbc底层封装
- 包含cv::Mat和cv::Rect的人眼ROI结构体在内存中的分布
- [LeetCode]3Sum