2014-08-27 1 views
1

Je montre un DialogFragment d'un autre DialogFragment. Je dois définir le titre et un bouton juste à côté. Je ne souhaite pas réimplémenter le thème et créer une vue personnalisée à l'intérieur de la vue de contenu de DialogFragment au lieu du titre de la boîte de dialogue (car elle est source d'erreurs et de perte de temps). Est-ce même possible? J'ai essayé de nombreuses fonctions API, AlertBuilder, ActionBar, ceci et cela, n'a toujours pas trouvé quelque chose qui correspond à mes besoins.Placez un bouton à l'intérieur du titre de DialogFragment

Répondre

1

Essayez quelque chose comme ceci:

// Title 
final int titleId = getResources().getIdentifier("alertTitle","id","android"); 
TextView title = (TextView) popup.findViewById(titleId); 
title.setText("My new title"); 

// Title's parent layout 
ViewGroup viewGroup = (ViewGroup) title.getRootView(); 

// Button 
Button button = new Button(this); 
button.setText("A Button"); 
viewGroup.addView(button); 

Note: Vous pouvez avoir besoin d'ajuster les objets button et titleLayoutParams.

+0

Cela a fonctionné. Petit correctif: J'ai utilisé 'TextView title = (TextView) getDialog(). FindViewById (android.R.id.title)' – efpies

+1

@efpies vous pouvez faire attention en utilisant 'android.R.id.title' ainsi que' alertTitle'. Je me souviens d'avoir essayé les deux et seul ce dernier a travaillé. Peut-être que cela dépend de l'appareil. Donc vous voudrez peut-être ajouter une vérification null :) – Simas

0

Une mise à jour. Cela peut être réalisé en appelant le setCustomTitle sur la classe AlertDialog.Builder. Disponible depuis api niveau 1, et ne nécessite pas beaucoup de code.

Exemple:

AlertDialog.Builder(getActivity()).setCustomTitle(getActivity().getLayoutInflater().inflate(R.layout.my_custom_view, viewGroup)).create()

Questions connexes