Ich schreibe diesen Code, um eine Dialogbox mit 'Ja' und 'Nein' Option erscheinen zu lassen, nachdem die 'OK' Taste gedrückt wurde. Die "Ja" sollten Benutzer zu einer "ShowResult" -Aktivität führen, wo sie die Benutzereingaben von der "Hauptaktivität" anzeigen; und das "Nein" wird nur eine Toast-Nachricht haben, die sagt "Du hast die Einreichung abgesagt."Intent überlappt das Dialogfeld?
Das Problem ist, wenn der "OK" -Button angeklickt wird, erscheint der Dialog für eine Sekunde, dann wird die Absicht angezeigt und deckt die Dialogbox ab.
Wenn ich auf "Zurück" klicke und auf "Ja" klicke, werden in der Aktivität keine Benutzereingaben angezeigt. Dies ist der Hauptaktivitätscode, mit dem ich gekämpft habe. Ich hoffe, dass ich an der ganzen Struktur nicht viel ändern werde, da dies ein Schulprojekt ist und wir einfache Techniken verwenden sollten.
Button btnOK;
EditText txtName;
EditText txtCoursename;
RadioButton rdnYear1;
RadioButton rdnYear2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnOK = (Button) findViewById(R.id.btnOK);
btnOK.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Intent intent = new Intent(this, ShowResult.class);
txtName = (EditText) findViewById(R.id.txtName);
txtCoursename = (EditText) findViewById(R.id.txtCoursename);
rdnYear1 = (RadioButton) findViewById(R.id.rdnYear1);
rdnYear2 = (RadioButton) findViewById(R.id.rdnYear2);
intent.putExtra("Name", txtName.getText().toString());
intent.putExtra("Course Name", txtCoursename.getText().toString());
intent.putExtra("Year 1", rdnYear1.isChecked());
intent.putExtra("Year 2", rdnYear2.isChecked());
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setCancelable(false);
switch (v.getId()) {
case R.id.btnOK:
builder.setTitle("You are submitting your data.");
builder.setMessage("Are you sure?");
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(), "You cancelled the submission.", Toast.LENGTH_SHORT).show();
}
});
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
startActivity(new Intent(MainActivity.this, ShowResult.class));
}
});
builder.show();
}
}
}
Ausgehend von Ihrem Yes-Button-Code aus dem Alarmdialog starten Sie nicht die Absicht, die Sie erstellt haben "intent", die Ihre Extras oder Strings hat. Es sollte 'startActivity (intent)' sein. – Roljhon
Ich habe gerade versucht, die StarActivity (Absicht), aber es hat nichts geändert. – Leona