EditText setText does not appear on dialog fragment

I am new to Android app development and don't know how to debug this. Therefore I am trying to do EditText.setText on DialogFragment. It prints the correct line in the log, but still shows the old line based on the .xml file ("Enter item here."). Is there any way to update it?

public class MyAlertDialogFragment extends DialogFragment{ public MyAlertDialogFragment() {} public static MyAlertDialogFragment newInstance(String desc) { MyAlertDialogFragment frag = new MyAlertDialogFragment(); Bundle args = new Bundle(); args.putString("desc", desc); frag.setArguments(args); return frag; } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getActivity()); alertDialogBuilder.setView(R.layout.custom_dialog); alertDialogBuilder.setTitle("Edit to-do list"); final View layout = View.inflate(MainActivity.getAppContext(), R.layout.custom_dialog, null); final EditText mEditText = (EditText) layout.findViewById(R.id.EditDesc); String desc = getArguments().getString("desc"); mEditText.setText(desc); System.out.println("EditText is " + mEditText.getText().toString()); alertDialogBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // on success EditTodoFragment.EditTodoFragmentListener listener = (EditTodoFragment.EditTodoFragmentListener)getActivity(); listener.onFinishEditDialog(mEditText.getText().toString()); } }); alertDialogBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); return alertDialogBuilder.create(); } 

}

Log file

 07-06 21:04:20.738 4115-4115/com.example.light.todolist I/System.out: EditText is Doing grocery 

Xml file:

 <TextView android:layout_width="238dp" android:layout_height="wrap_content" android:text="Edit Item Below:" android:id="@+id/EditTitle" android:layout_weight="0.04" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/EditDesc" android:text="Enter item here."> <requestFocus /> </EditText> 

+5
source share
2 answers

You do not use the layout for the dialog so that the text of the EditText is not displayed. Please change as here:

  AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getActivity()); alertDialogBuilder.setTitle("Edit to-do list"); final View layout = View.inflate(MainActivity.getAppContext(), R.layout.custom_dialog, null); alertDialogBuilder.setView(layout ); 
+3
source

Try the following:

 AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getActivity()); LayoutInflater inflater = getActivity().getLayoutInflater(); View customView = inflater.inflate(R.layout.custom_dialog, null); alertDialogBuilder.setView(customView); alertDialogBuilder.setTitle("Edit to-do list"); final EditText mEditText = (EditText) customView.findViewById(R.id.EditDesc); String desc = getArguments().getString("desc"); mEditText.setText(desc); alertDialogBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // on success EditTodoFragment.EditTodoFragmentListener listener = (EditTodoFragment.EditTodoFragmentListener)getActivity(); listener.onFinishEditDialog(mEditText.getText().toString()); } }); alertDialogBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); return alertDialogBuilder.create(); 
+2
source

All Articles