【发布时间】:2015-12-06 14:57:35
【问题描述】:
我在 Android 上部署了我的应用程序。
我在我的主 Activity 按钮中放置了一个,当您单击该按钮时,您必须显示一个对话框,在该对话框中我在 2 EditText 上写入文本并按下 OK 按钮。
我的问题是......如何在我的主要活动事件中获取 EditText 的值??
onDialogPositiveClick(...)
onDialogNegativeClick(...)
这是我的对话课程DialogAlex.java
public class DialogAlex extends DialogFragment {
public interface NoticeDialogListener {
public void onDialogPositiveClick(DialogFragment dialog,int id);
public void onDialogNegativeClick(DialogFragment dialog,int id);
}
NoticeDialogListener mListener;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
mListener = (NoticeDialogListener) activity;
} catch (ClassCastException e) {
// The activity doesn't implement the interface, throw exception
throw new ClassCastException(activity.toString()
+ " must implement NoticeDialogListener");
}
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
builder.setView(inflater.inflate(R.layout.dialog_signin, null)) //This layout contains only two EditText, ET1 and ET2.
.setPositiveButton("adicionar", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
mListener.onDialogPositiveClick(DialogAlex.this,id);
}
})
.setNegativeButton("cancelar", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
mListener.onDialogNegativeClick(DialogAlex.this, id);
}
});
return builder.create();
}
}
这是我的Activity Main。
...
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
if (id == R.id.telefono)
{
showNoticeDialog(); //call dialog
return true;
}
return super.onOptionsItemSelected(item);
}
public void showNoticeDialog() {
DialogFragment dialog = new DialogAlex();
dialog.show(getSupportFragmentManager(), "NoticeDialogFragment");
}
@Override
public void onDialogPositiveClick(DialogFragment dialog,int id) {
//**************HOW obtaining values EditText?*****************************
Toast.makeText(this,"hola", Toast.LENGTH_LONG).show();
}
@Override
public void onDialogNegativeClick(DialogFragment dialog,int id) {
}
...
问候
【问题讨论】:
-
只是 dialog.findViewbyId(R.id.youid).
标签: android android-layout android-fragments android-intent android-activity