Я пытаюсь сделать простое диалоговое окно с предупреждением для пользователя, чтобы ввести имя пользователя и пароль и отправить его обратно в приложение и закрыть диалоговое окно. Я нахожусь на этапе, когда я пытаюсь просто ввести текст в поля редактирования текста как строки, но когда я пытаюсь добавить их в строку, они пусты. Но тост показывает, что было введено в поле, как в примере ниже: Почему строки pwtest и untest пустые?
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment;
public class createid extends DialogFragment {
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
View view = getActivity().getLayoutInflater().inflate(R.layout.create, null);
AlertDialog.Builder builder= new AlertDialog.Builder(getActivity());
builder.setTitle("Create ID");
builder.setView(view);
final EditText userid = view.findViewById(R.id.newusername);
final EditText password = view.findViewById(R.id.newpassword);
final String pwtest = password.getText().toString();
final String untest = userid.getText().toString();
builder.setNegativeButton("Cancel", null);
builder.setPositiveButton("Create ID", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getActivity(), "User ID:" +userid.getText().toString() + "Password:" + password.getText().toString() +
"userstring is:" + untest + "password string is:" + pwtest, Toast.LENGTH_LONG).show();
}
});
return builder.create();
}
@Override
public void onCancel(DialogInterface dialog) {
super.onCancel(dialog);
Toast.makeText(getActivity(), "Dialog Cancelled", Toast.LENGTH_SHORT).show();
}
}