Android进阶之路-接口回调(一)

来源:互联网 发布:TS是什么画图软件 编辑:程序博客网 时间:2024/06/10 16:25
package com.example.call_back_demo;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity implements OnClickListener, CallBack {    private TextView mBtn;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mBtn = (TextView) findViewById(R.id.btn);        /**         * 回调步骤:         * 1.首先回调是涉及到接口         * 2.数据的处理方式         * 3.需要的地方告诉其处理的结果         * */        /**         * 回调的思想:         * 回调的描述莫过于说:"我现在办不了这这件事情,等我能办了,我就告诉你."         * */        mBtn.setOnClickListener(this);    }    //点击事件,创建办事儿着,由他通过接口告诉我们处理的结果    @Override    public void onClick(View v) {        DataSpeace data=new DataSpeace(this);        data.setData(this);    }    //实现了我们定义的接口        public void Basket(Object obj) {            Toast.makeText(this, "obj="+obj, 0).show();    }    /**     * 2.篮子已有,那么我们创建一个类来存放之前我们办事儿的"控件"     * */    public class DataSpeace{        //接口充当成员        //创建成员变量和成员方法,且做初始化        public CallBack mCallBack;        public DataSpeace(CallBack mCallBack) {            this.mCallBack = mCallBack;        }        //存放数据的方式了,处理方案写在这里        public void setData(CallBack obj){            Toast.makeText(MainActivity.this, "我可以处理这件事儿了="+obj, 0).show();        }    }}

接口必不可少:

package com.example.call_back_demo;/** * 1.接口(篮子,数据后续存放的控件) * */public interface CallBack {    void Basket(Object obj);}

如果想运行Demo,布局当然必不可少:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="#fff"     >    <TextView        android:background="#658742"        android:layout_centerInParent="true"        android:id="@+id/btn"        android:textColor="#fff"        android:padding="5dp"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="回调Demo" /></RelativeLayout>

简单结构图:
项目简单结构

1 0