Java 应用程序在.putExtra意图后崩溃
我正在尝试将变量从一个活动发送到另一个活动。当我尝试在手机上测试该应用程序时,它会崩溃,并说该应用程序已停止工作 来自发送端的代码Java 应用程序在.putExtra意图后崩溃,java,android,android-intent,Java,Android,Android Intent,我正在尝试将变量从一个活动发送到另一个活动。当我尝试在手机上测试该应用程序时,它会崩溃,并说该应用程序已停止工作 来自发送端的代码 if (id==R.id.action_cart){ Intent good1 = new Intent(MainActivity.this, Scroll.class); good1.putExtra("intVariableName", 5); startActivity(good1); Te
if (id==R.id.action_cart){
Intent good1 = new Intent(MainActivity.this, Scroll.class);
good1.putExtra("intVariableName", 5);
startActivity(good1);
TextView hides = (TextView) findViewById(R.id.textView3);
hides.setVisibility(View.INVISIBLE);
}
和接收端的代码
public class Scroll extends AppCompatActivity {
TextView btn = (TextView) findViewById(R.id.text);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scroll);
Intent mIntent = getIntent();
int intValue = mIntent.getIntExtra("intVariableName", 0);
btn.setText(intValue);
}}
如果你知道问题是什么,请告诉我。我花了几个小时寻找解决办法。谢谢您需要移动此
TextView btn=(TextView)findViewById(R.id.text)代码>在oncreate
内部,因为在oncreate
之前,没有任何布局附加到Scroll
活动,使用此findViewById(R.id.text)
查找textview
将导致失败,从而导致崩溃
public class Scroll extends AppCompatActivity {
TextView btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scroll);
btn = (TextView) findViewById(R.id.text)
//^^^^
Intent mIntent = getIntent();
int intValue = mIntent.getIntExtra("intVariableName", 0);
btn.setText(""+intValue);
}
}
注意:为清晰起见,请使用适当的命名约定,如TextView
的TextView
而不是btn
,并使用“+value
将int
值转换为text
,因为TextView
只允许字符串您需要移动此TextView-btn=(TextView)findViewById(R.id.text);
内部oncreate
,因为在oncreate
之前,没有任何布局附加到Scroll
活动,使用此findViewById(R.id.text)
查找TextView
将导致失败,因此崩溃
public class Scroll extends AppCompatActivity {
TextView btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scroll);
btn = (TextView) findViewById(R.id.text)
//^^^^
Intent mIntent = getIntent();
int intValue = mIntent.getIntExtra("intVariableName", 0);
btn.setText(""+intValue);
}
}
注意:为清晰起见,请使用适当的命名约定,如TextView
的TextView
而不是btn
,并使用“+value
将int
值转换为text
,因为TextView
只允许字符串在活动中使用
public class Scroll extends AppCompatActivity {
TextView btn ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scroll);
btn = (TextView) findViewById(R.id.text); // initialize your button here
Intent mIntent = getIntent();
int intValue = mIntent.getIntExtra("intVariableName", 0);
btn.setText(String.valueOf(intValue));
}}
在你的活动中
public class Scroll extends AppCompatActivity {
TextView btn ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scroll);
btn = (TextView) findViewById(R.id.text); // initialize your button here
Intent mIntent = getIntent();
int intValue = mIntent.getIntExtra("intVariableName", 0);
btn.setText(String.valueOf(intValue));
}}
试试这个
if (id==R.id.action_cart){
//hide views before moving
TextView hides = (TextView) findViewById(R.id.textView3);
hides.setVisibility(View.INVISIBLE);
Intent good1 = new Intent(MainActivity.this, Scroll.class);
good1.putExtra("intVariableName", 5);
startActivity(good1);
}
在接待活动中
把这个放在oncreate中
btn = (TextView) findViewById(R.id.text);
像这样
public class Scroll extends AppCompatActivity {
TextView btn ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scroll);
btn = (TextView) findViewById(R.id.text);
Intent mIntent = getIntent();
int intValue = mIntent.getIntExtra("intVariableName", 0);
btn.setText(intValue);
}}
试试这个
if (id==R.id.action_cart){
//hide views before moving
TextView hides = (TextView) findViewById(R.id.textView3);
hides.setVisibility(View.INVISIBLE);
Intent good1 = new Intent(MainActivity.this, Scroll.class);
good1.putExtra("intVariableName", 5);
startActivity(good1);
}
在接待活动中
把这个放在oncreate中
btn = (TextView) findViewById(R.id.text);
像这样
public class Scroll extends AppCompatActivity {
TextView btn ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scroll);
btn = (TextView) findViewById(R.id.text);
Intent mIntent = getIntent();
int intValue = mIntent.getIntExtra("intVariableName", 0);
btn.setText(intValue);
}}
我想问题出在这个调用中:btn.setText(intValue);
:值为5的字符串资源ID不存在。尝试用btn.setText(Integer.toString(intValue));
我想问题出在这个调用中:btn.setText(intValue);
:值为5的字符串资源ID不存在。请尝试将其替换为btn.setText(Integer.toString(intValue));
将行更改为:btn.setText(string.valueOf(intValue));
public class Scroll extends AppCompatActivity {
TextView btn = (TextView) findViewById(R.id.text);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scroll);
Intent mIntent = getIntent();
int intValue = mIntent.getIntExtra("intVariableName", 0);
btn.setText(String.valueOf(intValue));
}}
将行更改为:btn.setText(String.valueOf(intValue));
public class Scroll extends AppCompatActivity {
TextView btn = (TextView) findViewById(R.id.text);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scroll);
Intent mIntent = getIntent();
int intValue = mIntent.getIntExtra("intVariableName", 0);
btn.setText(String.valueOf(intValue));
}}
用此替换您的代码
public class Scroll extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scroll);
TextView btn = (TextView) findViewById(R.id.text);
Intent mIntent = getIntent();
int intValue = mIntent.getIntExtra("intVariableName", 0);
btn.setText(intValue);
}
}
用此替换您的代码
public class Scroll extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scroll);
TextView btn = (TextView) findViewById(R.id.text);
Intent mIntent = getIntent();
int intValue = mIntent.getIntExtra("intVariableName", 0);
btn.setText(intValue);
}
}
原木猫总是很可爱helpfull@DroidGalaxy请粘贴崩溃的错误日志。日志cat始终为helpfull@DroidGalaxy请粘贴崩溃的错误日志。由于intValue可能没有资源,应用程序仍可能在btn.setText(intValue)
处崩溃。请更改为btn.setText(String.valueOf(intValue)
@PavanPatil实际上,将始终存在0
(默认值)或传递的值,尽管它们应该是字符串的形式,但应用程序可能会在btn.setText(intValue)
处崩溃,因为intValue可能没有资源。更改为btn.setText(String.valueOf(intValue)
@PavanPatil实际上,将始终存在0
(默认值)或传递的值,尽管它们应为字符串形式,但这不是正确的答案,这不是正确的答案