版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/f552126367/article/details/88113968
一、前言
接口是我们在Android开发中经常用到的,通过接口可以简化我们在主activity的代码量。在下载时候的进度回调,在adapter与activity之间的回调,在javabean和fragment以及fragment之间的回调等等,回调的目的主要有两个:其一是传递数据,其二是保持数据的同步更新。常用的有两种形式,一是使用内部类的形式,得到接口的子类对象,另一种是直接实现定义的接口。
二、实现代码
1、首先定义一个接口,接口中有要实现的方法
public interface MainInterface {
void setMyText(String msg);
}
2、写一个主activity类,activity中调用class的方法,class执行具体方法成功后,回调到主activity
public class MainInterfaceActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_interface_layout);
initView();
}
private void initView(){
Button interface_button=findViewById(R.id.interface_button);
TextView interface_textview=findViewById(R.id.interface_textview);
interface_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
InterfaceHelpActivity.showMsg(MainInterfaceActivity.this,new MainInterface() {
@Override
public void setMyText(String msg) {
interface_textview.setText(msg);
}
});
}
});
}
}
3、写一个class类,具体实现方法
public class InterfaceHelpActivity {
public static void showMsg(Context context,MainInterface inter){
//可写耗时的读取网络数据方法。
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
//通过接口回调到主activity中的setMyText方法。
inter.setMyText("显示接口回调内容");
}
}, 2000);
}
}
4、xml编写
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent">
<include layout="@layout/top"/>
<Button
android:id="@+id/interface_button"
android:layout_width="wrap_content"
android:text="接口调用"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/interface_textview"
android:layout_width="match_parent"
android:textSize="18sp"
android:layout_height="match_parent" />
</LinearLayout>
三、总结
接口用处很多,自己梳理一遍更易于理解和使用,总的来说就是activity调用实现类中方法,然后给类传递当前实现的接口,类执行完代码后会回调到activity中。