Android-如何使用DialogFragment在按钮单击时打开AlertDialog?

Android-如何使用DialogFragment在按钮单击时打开AlertDialog?,android,android-alertdialog,android-dialogfragment,Android,Android Alertdialog,Android Dialogfragment,因此,我创建了一个对话框片段.java文件来显示我的警报对话框。我使用教程创建了一个带有列表的AlertDialog 如何在ContactList.java文件中引用此片段?我从教程中了解到的方法似乎不起作用。当我尝试使用ContactList.java文件中的以下代码执行onClick事件时,在getSupportFragmentManager()下会出现一个红色的波形。 以下是我为片段编写的代码: public class StatusDialogFragment extends Dialo

因此,我创建了一个
对话框片段
.java文件来显示我的警报对话框。我使用教程创建了一个带有列表的AlertDialog

如何在ContactList.java文件中引用此片段?我从教程中了解到的方法似乎不起作用。当我尝试使用ContactList.java文件中的以下代码执行onClick事件时,在
getSupportFragmentManager()
下会出现一个红色的波形。 以下是我为片段编写的代码:

public class StatusDialogFragment extends DialogFragment {
public Dialog onCreateDialog(Bundle savedInstanceState) {
    // Use the Builder class for convenient dialog construction
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setTitle(R.string.choose_status);
    builder.setItems(R.array.status_choices,
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    dismiss();
                }
            });
    return builder.create();
}
}

以下是我的相关ContactList.java文件代码:

public class ContactList extends Activity implements OnClickListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_contact_list);
    Intent intent = getIntent();


}
public void chooseStatus(View view) {
    DialogFragment newFragment = new StatusDialogFragment();
    newFragment.show(getSupportFragmentManager(), "statuschoice");
}
最后,这里是我想要打开对话框的按钮的XML代码

    <ImageButton
    android:id="@+id/status"  
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/status_available_icon"
    android:onClick="chooseStatus" />


谢谢您的时间。

如果您正在为低于3.0的平台编写代码,则需要扩展兼容性类:

public class ContactList extends FragmentActivity implements OnClickListener {
如果没有,请将
getSupportFragmentManager()
更改为
getFragmentManager()

另外,如果您使用的是
FragmentActivity
,请确保您的
StatusDialogFragment
扩展了支持包的兼容性


如果不是(意味着你只针对3.0+),确保您扩展的
DialogFragment
类不是来自支持包的类。

如何在旋转时维护alertdialog?@Maxrunner我不知道
对话框本身,因为我使用
DialogFragments
,因为它们一直在旋转。您确定吗?我想您需要设置retaininstance?我的实现不使用retaininstance。我也使用dialogfragments,但oncreate中有一个setretaininstance