2009-12-18 11 views
9

Je souhaite démarrer une activité dans un écran contextuel. Y a-t-il des suggestions pour un changement rapide?Activité Android dans la boîte de dialogue

new AlertDialog.Builder(SearchResults.this) 
     .setTitle("Refine") 
     .setItems(/*catNames*/, new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int which) { 
       /* User clicked so do some stuff */ 
       String catName = catNames[which]; 
       String categoryIds = subCats.get(catName); 
      }) 
      .setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int whichButton) { 
       //do nothing just dispose 
      } 
     }) 
     .create().show(); 

Répondre

22

Vous pouvez également appliquer ce thème si votre activité apparaît comme une boîte de dialogue:

<activity android:theme="@android:style/Theme.Dialog"> 
+0

Existe-t-il un moyen de faire cette chose dynamiquement? – user1017674

1

Si tout ce que vous voulez faire est de commencer l'activité lorsque l'utilisateur choisir un élément de votre boîte de dialogue, vous pouvez le faire comme ceci:

new AlertDialog.Builder(SearchResults.this) 
        .setTitle("Refine") 
        .setItems(/*catNames*/, new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int which) { 
            /* User clicked so do some stuff */ 
            String catName = catNames[which]; 
            String categoryIds = subCats.get(catName); 
            Intent intent = new Intent(SearchResults.this,YourActivity.class); 
            startActivity(intent); 
        }).setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int whichButton) { 
            //do nothing just dispose 
          } 
        }) 
        .create().show(); 

Dans votre méthode onClick() vous créez un intention et passez-le à la méthode startActivity().

+0

Je veux PRÉVU en vue de la boîte de dialogue. –

+0

Hmmm, je suis un peu confus ici. L'intention est une opération à effectuer - ce n'est pas un composant View/ViewGroup, donc il ne peut pas être utilisé comme une mise en page d'une boîte de dialogue. L'une des opérations qui peut être effectuée par intention est de commencer une nouvelle activité - alors peut-être que vous voulez définir votre mise en page personnalisée pour un dialogue? Est-ce le cas? – Ramps

Questions connexes