为什么会抛出'null object reference'错误?

时间:2014-07-02 16:25:36

标签: java android

我正在尝试将另一个活动中的字符串传递给此活动,然后将其发送到数组中,然后发送到列表视图中。每当我运行这个我得到“尝试在空对象引用上调用虚拟方法'android.os.Bundle android.content.Intent.getExtras()'” 看起来这个错误与第四行的'extras'包有关,但是如何在那里定义一个空对象引用呢?

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);
    Bundle extras = intent.getExtras();

    switch(requestCode) {
        case ACTIVITY_EDIT:
            String title = extras.getString(add.TITLE);
            String password = extras.getString(add.PASSWORD);
            adapter.add(title);
            break;
    }


}

这里是'PASSWORD'和'TITLE'变量在其他Activity中的定义:

public void onClick(View v) {
    EditText titleBox = (EditText)findViewById(R.id.titleText);
    TITLE = titleBox.getText().toString();

    EditText passBox = (EditText)findViewById(R.id.passwdText);
    String pass = passBox.getText().toString();

    EditText confBox = (EditText)findViewById(R.id.editText3);
    String conf = confBox.getText().toString();

    if (pass.equals(conf)) {

        PASSWORD = pass;
        this.finish();

    } else {
        Toast.makeText(this, "Passwords don't match", Toast.LENGTH_SHORT);
    }

}

1 个答案:

答案 0 :(得分:4)

当您使用Bundle将数据从一个活动传递到另一个活动时,数据将在onCreate()内的onActivityResult()方法中接收,而不是{{1}}内部,除非您专门实现了该数据。

检查此答案,了解如何开始其他活动以及如何将数据传递到其他活动:https://stackoverflow.com/a/20170125/1239966