2013-08-29 69 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