Ich habe die folgende Methode und ich möchte eine Snackbar
zeigen. Das Problem ist, ich habe meine Aktivität nicht view
und ich weiß nicht, wie man es bekommt. Im Code sehen Sie, dass Snackbar view
viewInflate_setup
ist, aber es funktioniert nicht. Ich weiß, dass es nicht funktioniert, weil dies die Ansicht von meinem alertdialog
und nicht meinem aktuellen Bildschirm ist. Ich habe versucht, die root view
, aber dann die snackbar
wird an der falschen Stelle (hinter diesen drei Android-Tasten) angezeigt. Wie bekomme ich meine Aktivierung View
?Wie bekommt man die Ansicht?
public void confirmPassword(){
final LayoutInflater inflateSetup = getLayoutInflater();
final View viewInflate_setup = inflateSetup.inflate(R.layout.inflate_setup, null);
AlertDialog.Builder alertSetup = new AlertDialog.Builder(this);
alertSetup.setView(viewInflate_setup);
final AlertDialog dialogSetup = alertSetup.create();
dialogSetup.show();
btnConfirmPassowod = (Button)viewInflate_setup.findViewById(R.id.btnConfirm);
btnConfirmPassowod.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
System.out.println("User has clicked the [confirm] button");
dialogSetup.setCancelable(false);
edtPassword3 = (EditText)viewInflate_setup.findViewById(R.id.edtPassword3);
SUpassword3 = edtPassword3.getText().toString();
final ParseUser beforeConfirmPassword = ParseUser.getCurrentUser();
ParseUser.logInInBackground(beforeConfirmPassword.getUsername(), SUpassword3, new LogInCallback() {
@Override
public void done(ParseUser parseUser, ParseException e) {
if(e==null){
//password confirmed, go to next setup
System.out.println("Password [" +SUpassword3+ "] and user [" +beforeConfirmPassword.getUsername()+ "] confirmed, go to setup");
dialogSetup.dismiss();
}else{
//passwords don't match
System.out.println("Password don't match: [" +SUpassword3 + "] USER [" +beforeConfirmPassword.getUsername()+ "]");
Snackbar.make(viewInflate_setup, "Wrong password. Try again.", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
dialogSetup.dismiss();
}
}
});
}
});
}
In welcher Art von Klasse ist diese Methode? –
Ich gehe davon aus, dass dies eine Aktivität ist, in der Sie die Funktion geschrieben haben. In diesem Fall können Sie dem Root-Layout Ihrer activity.xml-Datei ein 'android: id'-Attribut hinzufügen und dann' findViewById (R.id.root_layout_id) 'verwenden, um die Ansicht zu erhalten. Sie können die Root-Ansicht Ihrer Aktivität auch über 'findViewById (android.R.id.content)' abrufen. – wanpanman
Das habe ich @wanpanman gemacht. Vielen Dank. –