Android .putExtra(无响应)

Android .putExtra (not responding)

我需要将从 'Activity A' 创建的字符串传递给 'Activity B',以便我可以在 TextView 中显示它。 问题是代码导致Android没有响应,和网上其他教程一样。

感谢任何反馈。

Activity A.onCreate()

check_button = (Button) findViewById(R.id.check_button);
    check_button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v)
        {
            Intent i = new Intent(AddActivity.this, DetailActivity.class);
            String hash = text_hash.toString();
            i.putExtra("hash" , hash);
            startActivity(i);
        }
    });

Activity B.onCreate()

Bundle extras = getIntent().getExtras();
if (extras != null)
{
    passedHash = (String) getIntent().getExtras().getString("hash");
    hash.setText(passedHash);
}

堆栈跟踪:

     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference

如果 text_hashTextViewEditText 则使用

String hash = text_hash.getText().toString();

ActivityB onCreate() 中使用:

String newString;
if (savedInstanceState != null) {
    Bundle extras = getIntent().getExtras();
    if(extras == null) {
        newString= null;
    } else {
        newString= extras.getString("hash");
    }
}

编辑 从您的错误日志中,您没有在 ActivityB 中初始化 TextView。首先,您必须初始化该 TextView,然后设置 Text。

根据您的日志,您似乎没有在 Activity B 中初始化您的 TextView。在将文本设置到您的 TextView 之前执行此操作:

TextView hash = (TextView)findViewById(R.id.hash_textview);

好的,所以我需要使用 X.getText().toString(); 通过阅读堆栈跟踪,我认为我还需要在尝试设置文本之前在 TextView 上找到 FindViewByID。

感谢阅读。

您的 textView 对象是 nullreferenced,您需要在开始调用该 TextView 的任何方法之前在 oncreate 中初始化散列变量...

示例:

@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    TextView hash = (TextView)findViewById(R.id.hash_textview);

之后就可以调用settext方法了

 hash.setText(passedHash);