Ouvrir un dialogue personnalisé après cliquez sur un bouton Android
J'aimerais ouvrir un dialogue personnalisé après le clic d'un bouton. Le code du bouton XML est:
<Button
android:id="@+id/Button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/BorderMargin"
android:layout_marginRight="@dimen/BorderMargin"
android:background="#D2D2D2"
android:onClick="openDialog1"
android:padding="17dip"
android:text="@string/ButtonAdd" />
Après cliquez sur le bouton ouvrir de la méthode "openDialog1":
public void openDialog1(View view) {
final Dialog dialog = new Dialog(this.getApplicationContext());
dialog.setContentView(R.layout.dialogbrand_layout);
dialog.setTitle("Hello");
TextView textViewUser = new TextView(getApplicationContext());
textViewUser = (TextView) findViewById(R.id.textBrand);
textViewUser.setText("Hi");
dialog.show();
}
J'ai essayé d'exécuter cette cose mais le plantage de l'application sur le textViewUser.setText
Des idées?
- stackoverflow.com/questions/16534888/...
- post personnalisé de votre boîte de dialogue mise en page
- l'utilisation de l'activité contexte de Dialogue = new Dialog(ActivityName.c');
Vous devez vous connecter pour publier un commentaire.
Vous pouvez findViewById de la vue actuelle de la hiérarchie d'ensemble de l'activité.
Dans votre cas, vous devez utiliser contexte d'activité et également utiliser la boîte de dialogue objet d'initialiser textview.
Vous pouvez également supprimer le dernier modificateur.
Quand appeler le contexte d'activité OU de contexte de l'application?
Vérifier le lien ci-dessus et la réponse par commomsware de savoir quand utiliser contexte d'activité ou de contexte de l'application.
Vous ne devez pas utiliser l'Application du Cadre pour la création de boîtes de dialogue/points de Vue.
Changement:
À ceci:
Waqas est juste, mais en outre vous remplacer la
textViewUser
vous avez créé par programmation: "textViewUser = new TextView(getApplicationContext());
" avec un exemple trouvé dans votre vue de la hiérarchie: "textViewUser = (TextView) findViewById(R.id.textBrand);
".Il semble que
textViewUser
est null.Avez-vous essayer d'obtenir ce TextView à partir de la vue
dialogbrand_layout
? Si oui, il est sûr que votretextViewUser
est null, car cette TextView n'est pas dans votre vue actuelle de la hiérarchie.Êtes-vous sûr que textBrand textview est à l'intérieur de la contentView vous avez défini pour l'activité.
findViewById appel est de retourner la valeur null.
Si R. layout.dialogbrand_layout a textBrand textview puis remplacez-dessus de la ligne avec