我有这个错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at mt.edu.mcast.navigationfragmentsexample.BlankFragment2.onCreateView(BlankFragment2.java:92)
这是java BlankFragment2中的代码:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_blank_fragment2,container,false);
final EditText etName = (EditText) this.getActivity().findViewById(R.id.etName);
final EditText etSurname = (EditText) this.getActivity().findViewById(R.id.etSurname);
final EditText etUsername = (EditText) this.getActivity().findViewById(R.id.etUsername);
final EditText etPassword = (EditText) this.getActivity().findViewById(R.id.etPassword);
final EditText etEmail = (EditText) this.getActivity().findViewById(R.id.etEmail);
final EditText etPhone = (EditText) this.getActivity().findViewById(R.id.etPhone);
final EditText etAge = (EditText) this.getActivity().findViewById(R.id.etAge);
final Button bRegister = (Button) this.getActivity().findViewById(R.id.bRegister);
此时错误v
bRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String name = etName.getText().toString();
final String surname = etSurname.getText().toString();
final String username = etUsername.getText().toString();
final String password = etPassword.getText().toString();
final String email = etEmail.getText().toString();
final int phone = Integer.parseInt(etPhone.getText().toString());
final int age = Integer.parseInt(etAge.getText().toString());
Response.Listener<String> responseListener = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonResponse = new JSONObject(response);
boolean success = jsonResponse.getBoolean("success");
if(success){
Intent intent = new Intent(getActivity(), BlankFragment1.class);
BlankFragment2.this.startActivity(intent);
}
else {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); //create an error message
builder.setMessage("Register Failed")
.setNegativeButton("Retry",null) //click retry to retry registration
.create()
.show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
};
RegisterRequest registerRequest = new RegisterRequest(name, surname,age,username,password,email,phone,responseListener);
RequestQueue queue = Volley.newRequestQueue(getActivity());
queue.add(registerRequest);
}
});
return view;
}
任何帮助?
答案 0 :(得分:1)
您正在查看活动中的观看次数,但是您需要在视图中找到刚刚为您的片段充气的内容。对于您的所有findViewById
来电,请将this.getActivity()
更改为view
,以便view.findViewById
答案 1 :(得分:1)
您应该从rootView / Inflated视图中找到视图而不是getActivity()。所以将this.getActivity()更改为视图。
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_blank_fragment2,container,false);
final EditText etName = (EditText) view.findViewById(R.id.etName);
final EditText etSurname = (EditText) view.findViewById(R.id.etSurname);
final EditText etUsername = (EditText) view.findViewById(R.id.etUsername);
final EditText etPassword = (EditText) view.findViewById(R.id.etPassword);
final EditText etEmail = (EditText) view.findViewById(R.id.etEmail);
final EditText etPhone = (EditText) view.findViewById(R.id.etPhone);
final EditText etAge = (EditText) view.findViewById(R.id.etAge);
final Button bRegister = (Button) view.findViewById(R.id.bRegister);
}
答案 2 :(得分:0)
试试这个 -
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_blank_fragment2,container,false);
final EditText etName = (EditText) view.findViewById(R.id.etName);
final EditText etSurname = (EditText) view.findViewById(R.id.etSurname);
final EditText etUsername = (EditText) view.findViewById(R.id.etUsername);
final EditText etPassword = (EditText) view.findViewById(R.id.etPassword);
final EditText etEmail = (EditText) view.findViewById(R.id.etEmail);
final EditText etPhone = (EditText) view.findViewById(R.id.etPhone);
final EditText etAge = (EditText) view.findViewById(R.id.etAge);
final Button bRegister = (Button) view.findViewById(R.id.bRegister);