Android中interface使用详解

版权声明:本文为博主原创文章,未经博主允许不得转载。 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中。

猜你喜欢

转载自blog.csdn.net/f552126367/article/details/88113968