关于回调机制的例子

package com.minimax.interfacedemo;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
/**
 * 回调机制的经典案例啊!!!!!!!!
 * 创建回调机制的步骤:
 * 1、首先创建一个借口 借口中有一个公开的方法 onXXXXX(ex:onLoginFinish())
 * 2、创建一个类 实现 runnable 借口 例如 Login类实现 runnable
 *    在run方法中调用接口中的方法  只给相应的参数
 *    还有就是 添加一个方法:
 *    setOnXXXXX方法
 *     里面的类容是:this.loginfinish=loginfinish;
 *   
 * 3、最后在 需要的地方创建这个类的对象(Login的对象)然后
 *    调用setOnXXXXX方法
 *    在里面接受相应的参数然后进行操作即可
 */
public Login login;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        login=new Login();
        login.setOnloginFinish(new LoginFinish() {
            @Override
            public void onLoginFinish(int succeed) {
                // TODO Auto-generated method stub
                System.out.println("--->succeed<---"+succeed);
            }
        });
        new Thread(login).start();
    }
                               
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}


package com.minimax.interfacedemo;
public class Login implements Runnable{
    private LoginFinish loginfinish;
    private int succeed;
    public Login(){
        succeed=3;
    }
    public Login(int succeed){
        this.succeed=succeed;
    }
    public void setOnloginFinish(LoginFinish loginfinish) {
        this.loginfinish = loginfinish;
    }
    @Override
    public void run() {
        // TODO Auto-generated method stub
        loginfinish.onLoginFinish(succeed);
    }
}
package com.minimax.interfacedemo;
public interface LoginFinish {
   public void onLoginFinish(int succeed);
}


你可能感兴趣的:(回调机制)