簡體   English   中英

似乎找不到為什么“在空對象引用上的“'android.text.Editable android.widget.EditText.getText()'”為空的原因,我在這里缺少什么

[英]Can't seem to find why “ 'android.text.Editable android.widget.EditText.getText()' on a null object reference ” is null, what am I missing here

因此問題出在活動2,但是我將同時發布活動1和活動2。 我通讀了其他一些問題,所有這些問題似乎都缺少某種editText,我看了又看,似乎找不到我想在我一生中初始化的地方。 有人可以幫我找出這是什么地方,這絕對使我喪命。 我在標題中單擊“提交”按鈕時收到錯誤消息,它說它發生在活動2的第23行,該行的內容為“ intent.putExtra(“ editText”,editText.getText()。toString()); “

我覺得這很容易解決,但是卻讓我很頭疼。
感謝所有幫助! 謝謝。

活動1

package com.example.ndagenai.first_activity;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class FirstActivity extends AppCompatActivity {
private int mRequestCode = 100;

TextView textView;

private Jokes[] mList = new Jokes[]{
    new Jokes (R.string.joke_text0),
    new Jokes (R.string.joke_text1),
    new Jokes (R.string.joke_text2),
    new Jokes (R.string.joke_text3),
    new Jokes (R.string.joke_text4),
};

@Override
//creates activity
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_first);

    Button nextB = findViewById(R.id.nextButton);
    nextB.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
            startActivityForResult(intent, mRequestCode);
        }
    });

    Button b0 = findViewById(R.id.button0);
    b0.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            TextView textView = findViewById(R.id.category);
            textView.setText(R.string.joke_text0);
        }
    });
    Button b1 = findViewById(R.id.button1);
    b1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            TextView textView = findViewById(R.id.category);
            textView.setText(R.string.joke_text1);
        }
    });

    Button b2 = findViewById(R.id.button2);
    b2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            TextView textView = findViewById(R.id.category);
            textView.setText(R.string.joke_text2);
        }
    });
    Button b3 = findViewById(R.id.button3);
    b3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            TextView textView = findViewById(R.id.category);
            textView.setText(R.string.joke_text3);
        }
    });
    Button b4 = findViewById(R.id.button4);
    b4.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            TextView textView = findViewById(R.id.category);
            textView.setText(R.string.joke_text4);
        }
    });
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode == mRequestCode && resultCode == RESULT_OK){
        String editTextString = data.getStringExtra("editText");
    }
}
}

活動2

package com.example.ndagenai.first_activity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class SecondActivity extends Activity {
EditText editText;

@Override //makes activity for second one
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);

    Button b = findViewById(R.id.SubmitButton);
    b.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent();
            intent.putExtra("editText", editText.getText().toString());
            setResult(RESULT_OK, intent);
            finish();
        }
    });
}
}

在活動2中,您有

EditText editText;

但是你沒有

editText = (EditText) findViewById(R.id.editTextId);

所以您要分配一個永遠不會指向任何東西的變量

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM