Estou tentando criar uma caixa do edittext em uma caixa de diálogo para inserir uma senha. e quando estou fazendo, não sou capaz de fazer. Eu sou um iniciante nisso. Por favor, me ajude com isto.
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();
}
});
Imagem
Eu quero ter o
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();
}
});
Respostas:
Usar contexto de atividade
Substitua este
De
fonte
Dialog dialog = new Dialog(MainActivity.this)
. Eu acho que você copiou o código de outro lugar onde eu achopublic void onClick(DialogInterface dialog
é a interface do diálogo. usando isso não é um problema, você clica no botão negativo para descartar o diálogo de alerta.Sei que é tarde demais para responder a essa pergunta, mas para outras pessoas que estão procurando algo semelhante a este, aqui está um código simples de uma caixa de alerta com um edittext
ou
se você deseja alterar o tema da caixa de diálogo.
fonte
Mais simples de tudo seria.
Crie um arquivo de layout xml para o diálogo. Adicione qualquer visualização que desejar, como EditText, ListView, Spinner etc.
Infle essa visualização e defina-a como AlertDialog
Vamos começar primeiro com o arquivo Layout.
fonte
Versão simplificada
fonte
Experimente o código abaixo:
fonte
A definição da margem nos parâmetros de layout não funcionará no Alertdialog. você precisa definir o preenchimento no layout principal e adicionar o edittext nesse layout.
Este é o meu código kotlin de trabalho ...
fonte
Você também pode criar um diálogo de alerta personalizado criando um arquivo xml.
dialoglayout.xml
O código Java:
fonte
A resposta de Wasim me levou na direção certa, mas tive que fazer algumas alterações para fazê-lo funcionar no meu projeto atual. Estou usando esta função em um fragmento e chamando-a no clique do botão.
Espero que ajude outra pessoa no futuro próximo. Feliz codificação!
fonte