Ich bin ein bisschen neu in der Entwicklung von Android-Apps und weiß nicht, wie ich das debuggen kann. Also versuche ich EditText.setText in einem DialogFragment zu machen. Es gibt die richtige Zeichenfolge im Protokoll aus, zeigt aber immer noch die alte Zeichenfolge basierend auf der XML-Datei an ("Element hier eingeben"). Gibt es eine Möglichkeit, es zu aktualisieren?EditText setText wird nicht auf einem Dialogfragment angezeigt
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();
}
}
Die Protokolldatei
07-06 21:04:20.738 4115-4115/com.example.light.todolist I/System.out: EditText is Doing grocery
Die XML-Datei ist:
<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>
Du hast Recht! Ich muss das Layout für setView verwenden, sonst erkennt es es nicht? – user3315093