对于接口比较深入的认识

//activity代码

import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    Button onclick;
    TextView content;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        onclick = (Button) findViewById(R.id.onclick);

        onclick.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                content = (TextView) findViewById(R.id.content);
                //实例化引用接口的类
                info is = new info();
                //实例化继承接口的类
                uitls us = new uitls(MainActivity.this, content);
                //来,重点在这里看这参数。public void Setdates(datainfo infos)
                //明明是接口为啥是类?那么我们看下uitls类public class uitls implements datainfo
                //懂了吧。。我实现这个接口-java的多态
                is.Setdates(us);
            }
        });

    }

//接口

interface  datainfo {

        void  Setdata(String data);
}

//继承接口的类

public class uitls implements datainfo {
    private Context context;
    private TextView view;

    public uitls(Context context, TextView view) {
        this.context = context;
        this.view = view;
    }

    @Override
    public void Setdata(String data) {
        view.setText(data);
    }
}

//引用接口类

public class info {
    private  datainfo infos;

public void Setdates(datainfo infos){
    this.infos = infos;
    infos.Setdata("123456");
}

}

//xml布局自己写。。线性垂直,一个button,一个Textview

你可能感兴趣的:(android,接口回调)