2013-08-29 108 views
0

一個對話框,我創建一個擴展DialogFragment類的新類:安卓顯示活動

public class SaveDataDialog extends DialogFragment { 
    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
     // Get the layout inflater 
     LayoutInflater inflater = getActivity().getLayoutInflater(); 

     // Inflate and set the layout for the dialog 
     // Pass null as the parent view because its going in the dialog layout 
     builder.setView(inflater.inflate(R.layout.save_data_dialog, null)) 
     // Add action buttons 
       .setPositiveButton(R.string.save_data, new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int id) { 
         Toast.makeText(getActivity(), "Testing positive button", Toast.LENGTH_LONG).show(); 
        } 
       }).setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         SaveDataDialog.this.getDialog().cancel(); 
        } 
       }); 
     return builder.create(); 
    } 

} 

而且在某個地方我的主要活動(內部按鈕的onClick),我想顯示此對話框。所以我嘗試過:

SaveDataDialog sdd = new SaveDataDialog(); 
sdd.getDialog().show(); 

第二行給出一個空指針異常。

如何顯示對話框?這就是我想要做的。

+0

做一個'sdd.show()'。你不必做'sdd.getDialog()。show()' – Varun

回答

1

您的SaveDataDialog延伸DialogFragment ,您可以撥打sdd.show()來顯示DialogFragment

+0

我試過了:'sdd.show(getFragmentManager(),「SaveDataDialog」);'哪有錯誤:'方法show(FragmentManager,String)in如果您使用的是支持庫,則使用'getSupportFragmentManager()'而不是'getFragmentManager()',參數(FragmentManager,String)' – JDS

+0

不適用於DialogFragment類型。 – Varun

1

在您的活動中使用以下代碼來顯示您的對話框片段。

SaveDataDialog saveDataDialog = new SaveDataDialog(); 
saveDataDialog.show(getFragmentManager(), SaveDataDialog.class.getName()); 

http://developer.android.com/reference/android/app/DialogFragment.html#show(android.app.FragmentTransaction,java.lang.String中)

如果您的應用程序支持3.0.x的之前的Android版本您將需要使用支持庫並導入android.app.v4.DialogFragment。

http://developer.android.com/tools/support-library/index.html

0

此鏈接是真的對我很有幫助,希望它可以幫助你。 Here's a link