2009-12-18 2 views
9

Я хочу начать работу внутри всплывающего окна. Есть ли какие-либо предложения для быстрого изменения?Активность Android внутри диалога

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(); 

ответ

22

Вы также можете применить эту тему, так ваша деятельность выглядит как диалоговое окно:

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

Есть ли способ сделать эту вещь динамически? – user1017674

1

Если все, что вам нужно сделать, это начать деятельность, когда пользователь может выбрать элемент из вашего диалога, вы можете сделать это следующим образом:

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(); 

В вашем методе OnClick() вы создаете и передать его методу startActivity().

+0

Я хочу использовать намерение как вид диалога. –

+0

Хммм, я немного смущен. Intent - это операция, которая должна выполняться - это не компонент View/ViewGroup, поэтому он не может использоваться как макет диалогового окна. Одной из операций, которые могут быть выполнены путем намерения, является запуск новой активности - так что, возможно, вы хотите установить свой собственный макет для диалога? Это так? – Ramps

Смежные вопросы