[英]Android showing a dialog in activity
我創建了一個擴展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();
第二行給出了空指針異常。
如何顯示對話框? 這就是我要做的。
嘗試
sdd.show();
代替
sdd.getDialog().show();
由於對話框擴展了DialogFragment,因此不必調用.getDialog()
更多詳細信息: http : //android-developers.blogspot.com/2012/05/using-dialogfragments.html
您的SaveDataDialog
擴展了DialogFragment
,您可以調用sdd.show()
來顯示DialogFragment
。
在活動內部,使用以下代碼顯示對話框片段。
SaveDataDialog saveDataDialog = new SaveDataDialog();
saveDataDialog.show(getFragmentManager(), SaveDataDialog.class.getName());
如果您的應用程序支持3.0.x之前的Android版本。 您將需要使用支持庫並導入android.app.v4.DialogFragment。
http://developer.android.com/tools/support-library/index.html
該鏈接對我確實很有幫助,希望對您也有幫助。 這是一個鏈接 !
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.