如何在android中的接口回调内部传输数据

黄沙百战穿金甲,不破楼兰终不还。这篇文章主要讲述如何在android中的接口回调内部传输数据相关的知识,希望能为你提供帮助。
【如何在android中的接口回调内部传输数据】根据这个link,作者创建了一个对话框,它使用接口回调将数据从对话框传输到活动。
用户使用方法DataBackListener定义getData(String data)接口,
我丢失的地方是用户使用listener.getData(str); 将日期传输到getData(String data)方法,data是方法中的参数并且没有返回值,这是如何工作的?或者我应该阅读哪部分java才能理解它?先谢谢
使用界面定义对话框:

/** * Created by mhwang on 2015/11/18. */ public class MyDialog extends Dialog { //callback interface public interface DataBackListener{ public void getData(String data); } private EditText editText; private Button btnSure; DataBackListener listener; //create listener public MyDialog(Context context, final DataBackListener listener) { super(context); //initial listener this.listener = listener; setContentView(R.layout.dialog); editText = (EditText)findViewById(R.id.edit); btnSure = (Button)findViewById(R.id.sure); btnSure.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String str = editText.getText().toString(); //call the interface here to transfer the data listener.getData(str); dismiss(); } }); } }

在活动中使用对话框:
public class DialogActivity extends Activity { EditText showResult; Button btnStartDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_dialog); showResult = (EditText)findViewById(R.id.showResult); btnStartDialog = (Button)findViewById(R.id.start); btnStartDialog.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //创建对话框对象的时候对对话框进行监听 MyDialog dialog = new MyDialog(DialogActivity.this, new MyDialog.DataBackListener() { @Override public void getData(String data) { String result = data; showResult.setText(result); } }); dialog.show(); } }); }

答案结果在DialogActivity中的侦听器内返回:
btnStartDialog.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //创建对话框对象的时候对对话框进行监听 MyDialog dialog = new MyDialog(DialogActivity.this, new MyDialog.DataBackListener() { @Override public void getData(String data) { String result = data; < -----Here showResult.setText(result); } }); dialog.show(); } });


    推荐阅读