最近做项目有好多的地方用到了接口回调,所以抽空找时间写了个特别简单的接口回调,如有问题,求留言批评教育。
举个例子,A有一个问题不会,他去问B,B暂时解决不出来,B说,等我(B)解决了再告诉你(A)此时A可以继续先做别的事情。那么就只有当B解决完问题后告诉A问题解决了,A才可以能解决这个问题。
//A要去问B问题
public class MainActivity extends AppCompatActivity implements Main2Activity.OnclickBa {
TextView content; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); content = (TextView) findViewById(R.id.content);
//回调实例
Main2Activity.setOnclickBa(this); content.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, Main2Activity.class); startActivity(intent); } }); }
//具体的实现方法 @Override public void OnclickBa(String txt) {
//B告诉的答案,txt = A;
content.setText(txt);
}
}
//B准备解决A的问题
public class Main2Activity extends AppCompatActivity {
private static OnclickBa onclickBa; public static void setOnclickBa(OnclickBa onclickBa) { Main2Activity.onclickBa = onclickBa; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); Button bc = (Button) findViewById(R.id.backone); bc.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {
//将答案告诉A onclickBa.OnclickBa("A"); } }); }
//接口 public interface OnclickBa { void OnclickBa(String txt); } }