2010-05-01 10 views
4

Cela est donc lié à une question que j'ai posée précédemment. J'essaie d'afficher une alerte en utilisant une mise en page spécifiée. Ma mise en page est:Boîte de dialogue d'alerte avec mise en page personnalisée échouant

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:id="@+id/layout_root" 
       android:orientation="horizontal" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:padding="10dp"> 
    <TextView android:id="@+id/text" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:textColor="#FFF" /> 
</LinearLayout> 

Et le code pour appeler et afficher la boîte de dialogue d'alerte est:

Context mContext = getApplicationContext(); 

    AlertDialog.Builder builder = new AlertDialog.Builder(mContext); 
    // use a custom View defined in xml 
    View view = LayoutInflater.from(mContext).inflate(R.layout.sell_dialog,  (ViewGroup) findViewById(R.id.layout_root)); 
    builder.setView(view); 
    builder.setPositiveButton(android.R.string.ok, new OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 

      // do whatever you want with the input 
     } 
    }); 
    AlertDialog alertDialog = builder.create(); 

    alertDialog.show(); 

Lorsque je le lance, je reçois une erreur disant:

gestionnaire Uncaught: fil Exiting principal en raison de l'exception uncaught android.view.WindowManager $ NadTokenException: Impossible d'ajouter la fenêtre - token null n'est pas pour une application

J'ai regardé à travers le a site de développement ndroid et ne peut pas le comprendre. Je pense que je manque juste quelque chose d'évident mais la solution ne me saute pas aux yeux. Comment puis-je afficher cette boîte de dialogue d'alerte?

Répondre

9

N'utilisez pas getApplicationContext(). Cette méthode est uniquement disponible sur un Context (par exemple, Activity) - utilisez cette Context pour votre AlertDialog.Builder.

Here is a sample project d'un de mes livres qui, entre autres, montre un AlertDialog basé sur un View personnalisé.

+0

A travaillé comme un charme. Merci beaucoup! – cmptrer

+0

Je suis intéressé par l'exemple de la boîte de dialogue d'alerte qui utilise une vue personnalisée, mais votre lien n'a pas un tel exemple. – Nemi

+0

@Nemi: Oups, vous avez raison. Désolé pour ça. Essayez celui-ci: http://github.com/commonsguy/cwac-colormixer – CommonsWare

Questions connexes