所以我创建了一个DialogFragment
.java文件来显示我的警报对话框。我使用教程here创建了一个带列表的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" />
感谢您的时间。
答案 0 :(得分:2)
如果您正在为低于3.0的平台编码,则需要扩展兼容性类FragmentActivity
public class ContactList extends FragmentActivity implements OnClickListener {
如果没有,请将getSupportFragmentManager()
更改为getFragmentManager()
另外,如果您使用的是FragmentActivity
,请确保StatusDialogFragment
扩展了支持包中的兼容性DialogFragment
。
如果不是(意味着您的目标只是3.0及以上),请确保您从支持包中扩展的DialogFragment
班级不。