J'ai ouvert une boîte de dialogue personnalisée à l'intérieur d'un bouton long, Dans cette boîte de dialogue personnalisée, j'ai deux boutons et un texte d'édition. Je veux changer le nom du bouton que j'ai pressé avec le nom que je reçois du texte d'édition dans la boîte de dialogue personnalisée, les boutons ne fonctionnent pas.Le bouton ne fonctionne pas dans la boîte de dialogue personnalisée apparaissant après un appui long sur un bouton
public void initializeLPButtons(Button[] btns, int[] rArrays) {
for(i=0; i<btns.length; i++) {
btns[i] = (Button) findViewById(rArrays[i]);
btns[i].setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
renameBtn();
return true;
}
});
}
}
public void renameBtn() {
final AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
dialog.setView(R.layout.dialog_renamebtn);
dialog.setTitle("Rename Button...");
dialog.setMessage("Rename The Button To:");
LayoutInflater inflater = LayoutInflater.from(MainActivity.this);
final View dialogView = inflater.inflate(R.layout.dialog_renamebtn, null);
renameEt = (EditText) dialogView.findViewById(R.id.renameEt);
renameBtn = (Button) dialogView.findViewById(R.id.renameBtn);
cnclRenameBtn = (Button) dialogView.findViewById(R.id.cnlRenameBtn);
cnclRenameBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
renameBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
renameBtnTxt();
}
});
dialog.show();
}
public void renameBtnTxt() {
if (renameEt.getText().toString().length() > 0) {
btns[i].setText(renameEt.getText().toString());
}else {
Toast.makeText(MainActivity.this, "Please choose a name.",
Toast.LENGTH_SHORT).show();
}
}
Je ne pense pas que mon code a des problèmes. S'il vous plaît, si c'est quelque chose avec Java, aidez-moi à le trouver.
cela fonctionne, mais il faut dialog.show aussi. Je ne sais pas pourquoi quelqu'un a marqué moins ma question. – Shahryar
oui, j'ai oublié d'ajouter cela, merci de signaler. J'ai édité ma réponse. – AndroidGeek