1

所以我创建了一个DialogFragment.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" />

谢谢你的时间。

4

1 回答 1

2

FragmentActivity如果您为 3.0 以下的平台编写代码,则需要扩展兼容性类:

public class ContactList extends FragmentActivity implements OnClickListener {

如果没有,请更改getSupportFragmentManager()getFragmentManager()

还要确保如果您正在使用FragmentActivity,您StatusDialogFragment扩展了支持包的兼容性DialogFragment

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

于 2013-01-27T20:36:37.823 回答