2
私は、Textviewと2つのボタン(送信とキャンセル)を含む単純なDialogFragmentを構築しようとしています。は、ダイアログボックス内の私のボタンのポインタを得ることができません
私はTextViewには、空の最初のときにボタンを無効にしたいが、私のコードでpositiveButton変数は常にnullであると私は、次の例外を取得:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setEnabled(boolean)' on a null object reference
は、これはコードです:
public class SendFriendRequestFragment extends DialogFragment {
private TextView tvEmail = null;
Button positiveButton = null;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the Builder class for convenient dialog construction
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
// Get the layout inflater
final LayoutInflater inflater = getActivity().getLayoutInflater();
final View layout = inflater.inflate(R.layout.fragment_send_friend_request, null);
// Inflate and set the layout for the dialog
// Pass null as the parent view because its going in the dialog layout
builder.setView(layout)
.setTitle("Send request")
.setPositiveButton(R.string.send, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
String email = tvEmail.getText().toString().trim();
if (validateInput()) {
SendFriendRequest(getActivity(), email);
} else {
Toast.makeText(getActivity(), "Request cannot be sent", Toast.LENGTH_LONG).show();
return;
}
}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// User cancelled the dialog
}
});
Dialog dialog = builder.create();
positiveButton = ((AlertDialog) dialog).getButton(AlertDialog.BUTTON_POSITIVE);
positiveButton.setEnabled(false); // positiveButton is null and this call raises an exception !
tvEmail = (TextView) layout.findViewById(R.id.email);
tvEmail.addTextChangedListener(new InputTextWatcher(tvEmail));
// Create the AlertDialog object and return it
//return builder.create();
return dialog;
}
// Other functions that use the two variables positiveButton and tvEmail ...
}
誰も私の問題を解決する方法を教えてください、ボタンと使用されたレイアウトに含まれるビューのポインタを取得する最良の方法は何ですか?
ありがとうございました!