0
在我的Android應用程序中,我創建了一個具有自定義View的自定義DialogFragment,但我想要帶有透明背景的Positive和Negative Button。NullPointerException嘗試獲取DialogFragment的PositiveButton
所以我看到一些SO答案,我做了這樣的事情:
private class PersonalInfoDialogFragment extends DialogFragment {
@Override
public void onStart(){
super.onStart();
Button pButton = ((AlertDialog) getDialog()).getButton(DialogInterface.BUTTON_POSITIVE);
Button nButton = ((AlertDialog) getDialog()).getButton(DialogInterface.BUTTON_NEGATIVE);
pButton.setBackgroundColor(getResources().getColor(Color.TRANSPARENT));
nButton.setBackgroundColor(getResources().getColor(Color.TRANSPARENT));
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
LayoutInflater inflater = getActivity().getLayoutInflater();
final View view=inflater.inflate(R.layout.personalinformation_dialog, null);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(R.string.personalinformation)
.setView(view)
.setPositiveButton(R.string.edit, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//Some code
}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// User cancelled the dialog
}
});
// Create the AlertDialog object and return it
final AlertDialog dialog = builder.create();
//I also tried this: dialog.getButton(DialogInterface.BUTTON_POSITIVE).setBackgroundColor(Color.TRANSPARENT);
return dialog;
}
}
爲什麼我面對的NullPointerException我不明白。任何想法?
嘗試做pButton,n按鈕全球和在onStart替換代碼onCreateDialog –
和更改您的代碼dialog.getButton(AlertDialog.BUTTON_POSITIVE).doWhatEverYouWant –