2009-12-18 39 views
9

Tôi muốn bắt đầu một hoạt động bên trong màn hình bật lên. Có đề xuất nào để thay đổi nhanh không?Hoạt động Android trong hộp thoại

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

Trả lời

22

Bạn cũng có thể áp dụng theme này nên hoạt động của bạn xuất hiện giống như một hộp thoại:

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

Có cách nào để làm điều này động không? – user1017674

1

Nếu tất cả các bạn muốn làm là để bắt đầu hoạt động khi người dùng chọn một mục từ hộp thoại, bạn có thể làm điều đó như thế này:

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

Trong phương pháp onClick() của bạn, bạn tạo ra một ý định và chuyển nó đến phương thức startActivity().

+0

Tôi muốn sử dụng ý như một cái nhìn của hộp thoại. –

+0

Hmmm, tôi hơi bối rối ở đây. Intent là một hoạt động được thực hiện - nó không phải là một thành phần View/ViewGroup vì vậy nó không thể được sử dụng như là một bố trí của một hộp thoại. Một trong những hoạt động có thể được thực hiện bằng ý định là bắt đầu hoạt động mới - vì vậy có thể bạn muốn đặt bố cục tùy chỉnh cho một hộp thoại? Đó là trường hợp? – Ramps

Các vấn đề liên quan