• Android中回调接口的使用


    MainActivity如下:

    package cn.testcallback;
    import android.os.Bundle;
    import android.app.Activity;
    /**
     * Demo描述:
     * Android中回调接口的使用
     */
    public class MainActivity extends Activity {
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
    		testCallBack();
    	}
    	private void testCallBack(){
    		AskQuestion askQuestion=new AskQuestion();
    		String questionString="Do you love me ?";
    		System.out.println("The question is : "+questionString);	
    		askQuestion.askQuestion(questionString);
    	}
    
    }
    


    CallBackInterface如下:

    package cn.testcallback;
    /**
     * 定义一个接口
     * 接口中有一方法
     */
    public interface CallBackInterface {
    	public void answerQuestion(String result);
    }
    


    AskQuestion如下:

    package cn.testcallback;
    
    public class AskQuestion implements CallBackInterface{
        public void askQuestion(final String questionString){
        	new Thread(){
        		public void run() {
        			AnswerQuestion answerQuestion=new AnswerQuestion();
        			answerQuestion.receiveQuestion(AskQuestion.this, questionString);
        		};
        	}.start();
        }
    	@Override
    	public void answerQuestion(String result) {
            System.out.println("The answter is : "+result);		
    	}
    
    }
    


    AnswerQuestion如下:

    package cn.testcallback;
    
    public class AnswerQuestion {
       public void receiveQuestion(CallBackInterface callBackInterface,String questionString){
    		try {
                Thread.sleep(3000);
    		} catch (Exception e) {
    		}
    		String result="YES!!!";
    		callBackInterface.answerQuestion(result);
       }
    }
    


    main.xml如下:

    <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"
       >
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="回调的使用" 
            android:layout_centerInParent="true"
        />
    
    </RelativeLayout>


     

  • 相关阅读:
    十一、 Façade外观(结构型模式)
    十七、 Mediator 中介者(行为型模式)
    十三、 Proxy代理(结构型模式)
    也谈.net平台的委托扩展篇
    也谈.net平台的委托基本篇
    十六、 Interpreter 解释器(行为型模式)
    十四、 Template Method模板方法(行为型模式)
    十八、 Iterator 迭代器(行为型模式)
    十五、 Command 命令(行为型模式)
    十二、 Flyweight享元(结构型模式)
  • 原文地址:https://www.cnblogs.com/riskyer/p/3226212.html
Copyright © 2020-2023  润新知