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_hash
是 TextView
或 EditText
则使用
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);
我需要将从 '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_hash
是 TextView
或 EditText
则使用
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);