J'essaye de faire une boîte edittext dans une boîte de dialogue pour entrer un mot de passe. et quand je fais, je ne peux pas faire. Je suis un débutant dedans. S'il vous plait aidez moi avec ceci.
public class MainActivity extends Activity {
Button create, show, setting;
//String pass="admin";String password;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
create = (Button)findViewById(R.id.amcreate);
setting = (Button)findViewById(R.id.amsetting);
show = (Button)findViewById(R.id.amshow);
//input = (EditText)findViewById(R.id.this);
setting.setVisibility(View.INVISIBLE);
create.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent myIntent1 = new Intent(view.getContext(), Create.class);
startActivityForResult(myIntent1, 0);
}
});
show.setOnClickListener(new View.OnClickListener() {
//@SuppressWarnings("deprecation")
public void onClick(final View view) {
// Creating alert Dialog with one Button
AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
//AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();
// Setting Dialog Title
alertDialog.setTitle("PASSWORD");
// Setting Dialog Message
alertDialog.setMessage("Enter Password");
**final EditText input = new EditText(this);**
//alertDialog.setView(input);
// Setting Icon to Dialog
alertDialog.setIcon(R.drawable.key);
// Setting Positive "Yes" Button
alertDialog.setPositiveButton("YES",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int which) {
// Write your code here to execute after dialog
Toast.makeText(getApplicationContext(),"Password Matched", Toast.LENGTH_SHORT).show();
Intent myIntent1 = new Intent(view.getContext(), Show.class);
startActivityForResult(myIntent1, 0);
}
});
// Setting Negative "NO" Button
alertDialog.setNegativeButton("NO",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Write your code here to execute after dialog
dialog.cancel();
}
});
// closed
// Showing Alert Message
alertDialog.show();
}
});
Image
Je veux devenir
AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
alertDialog.setTitle("PASSWORD");
alertDialog.setMessage("Enter Password");
final EditText input = new EditText(MainActivity.this);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT);
input.setLayoutParams(lp);
alertDialog.setView(input);
alertDialog.setIcon(R.drawable.key);
alertDialog.setPositiveButton("YES",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
password = input.getText().toString();
if (password.compareTo("") == 0) {
if (pass.equals(password)) {
Toast.makeText(getApplicationContext(),
"Password Matched", Toast.LENGTH_SHORT).show();
Intent myIntent1 = new Intent(view.getContext(),
Show.class);
startActivityForResult(myIntent1, 0);
} else {
Toast.makeText(getApplicationContext(),
"Wrong Password!", Toast.LENGTH_SHORT).show();
}
}
}
});
alertDialog.setNegativeButton("NO",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
alertDialog.show();
}
});
Réponses:
Utiliser le contexte Activtiy
Remplacez ceci
Par
la source
Dialog dialog = new Dialog(MainActivity.this)
. Je pense que vous avez copié votre code ailleurs où je supposepublic void onClick(DialogInterface dialog
son interface de dialogue. en utilisant ce n'est pas un problème, vous cliquez sur le bouton négatif pour fermer le dialogue d'alerte.Je sais qu'il est trop tard pour répondre à cette question, mais pour ceux qui recherchent quelque chose de similaire à ceci, voici un simple code d'une boîte d'alerte avec un edittext
ou
si vous souhaitez changer le thème de la boîte de dialogue.
la source
Le plus simple serait.
Créez un fichier de mise en page XML pour la boîte de dialogue. Ajoutez la vue que vous voulez comme EditText, ListView, Spinner etc.
Gonflez cette vue et définissez-la sur AlertDialog
Commençons par le fichier de mise en page en premier.
la source
Version simplifiée
la source
Essayez le code ci-dessous:
la source
La définition de la marge dans les paramètres de mise en page ne fonctionnera pas dans Alertdialog. vous devez définir le remplissage dans la disposition parent, puis ajouter edittext dans cette disposition.
Ceci est mon code kotlin de travail ...
la source
Vous pouvez également créer une boîte de dialogue d'alerte personnalisée en créant un fichier xml.
dialoglayout.xml
Le code Java:
la source
La réponse de Wasim m'a conduit dans la bonne direction mais j'ai dû faire quelques changements pour le faire fonctionner pour mon projet actuel. J'utilise cette fonction dans un fragment et l'appelle sur clic de bouton.
J'espère que cela aidera quelqu'un d'autre dans un proche avenir. Bon codage!
la source