2013-11-25 16 views
1

我有一個在Android中顯示對話框的一般類。如何將額外資訊傳遞給此課程,延伸至android.app.Dialog把附加組件對話框

對於活動我可以使用getIntent().getIntExtra()爲例。

+0

我不知道,但也許你可以通過構造函數? – Ragaisis

+0

你想傳遞給對話框數據例如int? – Sajmon

+0

@Geralt是的。其實我需要把它作爲字符串發送給對話標題。 – MikkoP

回答

1

我如何通過羣衆演員這個類,擴展android.app.Dialog

起初,我想說,你沒有提供有關當前實現,因此下面的事情更多的細節我提到的是,我假設你有一些方法返回對話框(你提到你正在使用一個存儲各種對話框的類)。

那麼直接通過方法傳遞數據呢?

public static final Dialog getDialog(int id, String title) { 
    // do your stuff 
} 

或者您可以使用構造函數來達到自己的目標:

public Dialog(Context context, String title, int data) { 
    super(context); 
    this.title = title; 
    this.data = data; 
} 

注意,只要你想,你可以創建許多參數的構造函數什麼。 Dialog類只需要調用超級構造函數:

super(Context context); 
super(Context context, int theme); 
super(Context context, boolean cancelable, OnCancelListener listener); 

所以,如果你打電話給他們的一個你的罰款。

0

使用另一個構造函數,例如:

public class MyClass extends Dialog 
{ 
    private Integer data; 

    public MyClass(Context context){super(c);} 
    public MyClass(Context context, Integer value) 
    { 
     super(c); 
     data = value; 
    } 
} 

然後你就可以在你的類從其他地方使用的數據。

0

下面是我將如何傳遞給對話框。

  1. 創建一個靜態方法,該方法將創建對話框並在捆綁包中設置額外值。

    public static final String TAG = "ExampleDialog"; 
    
    private static final String BUNDLE_TITLE = "title" 
    
    ... 
    
    public static ExampleDialog newInstance(String title) { 
        ExampleDialog dialog = new ExampleDialog(); 
        Bundle bundle = new Bundle(); 
        bundle.putString(BUNDLE_TITLE, title); 
        dialog.setArguments(bundle); 
        return dialog; 
    } 
    
  2. onCreateDialog方法訪問被捆綁的字符串

    public Dialog onCreateDialog(Bundle savedInstanceState) { 
        Bundle bundle = this.getArguments(); 
        final String title = bundle.getString(BUNDLE_TITLE); 
        ... 
    } 
    
  3. 創建對話框

    ExampleDialog dialog = ExampleDialog.newInstance("Title of Dialog"); 
    dialog.show(getFragmentManager(), ExampleDialog.TAG); 
    
相關問題