Android 我的代码中出现了什么错误,显示“错误”;空指针异常";

Android 我的代码中出现了什么错误,显示“错误”;空指针异常";,android,nullpointerexception,Android,Nullpointerexception,我是android的新手。我正试图从用户和烤面包到屏幕上的数据。。。但我面临空指针异常。。。我一直在努力解决…请帮帮我 这是我的密码: public class MainActivity extends ActionBarActivity { private EditText etName; private EditText etEmail; private EditText etPhone; private EditText etDesignation;

我是android的新手。我正试图从用户和烤面包到屏幕上的数据。。。但我面临空指针异常。。。我一直在努力解决…请帮帮我 这是我的密码:

 public class MainActivity extends ActionBarActivity {

    private EditText etName;
    private EditText etEmail;
    private EditText etPhone;
    private EditText etDesignation;
    DatabaseHelper dbHelper;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

         findViewById(R.id.etName);
         findViewById(R.id.etEmail);
         findViewById(R.id.etPhone);
         findViewById(R.id.etDesignation);
        //dbHelper = new DatabaseHelper(this);
    }

    public void save(View v) {
        String name = etName.getText().toString();
        String email = etEmail.getText().toString();
        String phone = etPhone.getText().toString();
        String designation = etDesignation.getText().toString();

        Employee employee = new Employee(name, email, phone, designation);
        Toast.makeText(getApplicationContext(), employee.toString(),
                Toast.LENGTH_LONG).show();



        }

字段未初始化。只做一个
findviewbyd(R.id.etName)是不够的,因为全局成员将持有给出NullPointerException的
null
值。因此,分配任务很重要

private EditText etName;         // default - null
private EditText etEmail;        // default - null
private EditText etPhone;        // default - null
private EditText etDesignation;  // default - null
DatabaseHelper dbHelper;         // default - null

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

     // changes here, link layout fields to objects

     etName = (EditText) findViewById(R.id.etName);
     etEmail = (EditText)findViewById(R.id.etEmail);
     etPhone = (EditText)findViewById(R.id.etPhone);
     etDesignation = (EditText)findViewById(R.id.etDesignation);
    //dbHelper = new DatabaseHelper(this);
}

public void save(View v) {
    String name = etName.getText().toString();
    String email = etEmail.getText().toString();
    String phone = etPhone.getText().toString();
    String designation = etDesignation.getText().toString();

    Employee employee = new Employee(name, email, phone, designation);
    Toast.makeText(getApplicationContext(), employee.toString(),
            Toast.LENGTH_LONG).show();



    }
试试这个

private EditText etName;
private EditText etEmail;
private EditText etPhone;
private EditText etDesignation;
DatabaseHelper dbHelper;
Context context;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    context = this;
    etName = (EditText)findViewById(R.id.etName);
    etEmail = (EditText) findViewById(R.id.etEmail);
    etPhone = (EditText) findViewById(R.id.etPhone);
    etDesignation = (EditText) findViewById(R.id.etDesignation);
    //dbHelper = new DatabaseHelper(this);
}

public void save(View v) {
    String name = etName.getText().toString();
    String email = etEmail.getText().toString();
    String phone = etPhone.getText().toString();
    String designation = etDesignation.getText().toString();

    Employee employee = new Employee(name, email, phone, designation);
    Toast.makeText(context, employee.toString(),
            Toast.LENGTH_LONG).show();



    }
立即创建

 etName = (EditText)findViewById(R.id.etName);
 etEmail = (EditText)findViewById(R.id.etEmail);
 etPhone = (EditText)findViewById(R.id.etPhone);
 etDesignation = (EditText)findViewById(R.id.etDesignation);

您忘了初始化视图,在null上调用了
getText()
,我建议您先检查基础知识

替换此部分:

etName = (EditText) findViewById(R.id.etName);
    etEmail = (EditText) findViewById(R.id.etEmail);
    etPhone = (EditText) findViewById(R.id.etPhone);
    etDesignation = (EditText) findViewById(R.id.etDesignation);
    dbHelper = new DatabaseHelper(this);

您的字段似乎没有被实例化,这通常表示存在空指针异常。您是否尝试过更改

 findViewById(R.id.etName);
 findViewById(R.id.etEmail);
 findViewById(R.id.etPhone);
 findViewById(R.id.etDesignation);

??你是否也确定如果R.id。是否有有效的参考资料

可能重复的
 this.eName = (EditText)findViewById(R.id.etName);
 this.etEmail = (EditText)findViewById(R.id.etEmail);
 this.etPhone = (EditText)findViewById(R.id.etPhone);
 this.etDesignation = (EditText)findViewById(R.id.etDesignation);