Java 如何传递一个类型的值并将其转换为另一个类型?
我试图将一个整数值从一个活动传递到另一个活动。Java 如何传递一个类型的值并将其转换为另一个类型?,java,android,eclipse,Java,Android,Eclipse,我试图将一个整数值从一个活动传递到另一个活动。 在第二个活动中,我想将字符串转换为整数以进行一些计算,并再次将其转换为字符串以在文本视图中显示 这是我的第一个活动: public class GetPrice extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(saved
在第二个活动中,我想将字符串转换为整数以进行一些计算,并再次将其转换为字符串以在文本视图中显示 这是我的第一个活动:
public class GetPrice extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.getprice);
final EditText et1 = (EditText) findViewById(R.id.getprice);
Button getb1 = (Button) findViewById(R.id.getbutton);
getb1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent i1 = new Intent(GetPrice.this, Price1.class);
int fl1 = Integer.parseInt(et1.getText().toString());
i1.putExtra("theprice", fl1);
startActivity(i1);
}
});
public class Price1 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.price1);
String st1 = new String(getIntent().getExtras().getString("theprice"));
Integer int1 = Integer.valueOf(st1);
//some calculation with int1
TextView tv1 = (TextView) findViewById(R.id.price1text);
tv1.setText(String.valueOf(int1));
}
这是我的第二项活动:
public class GetPrice extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.getprice);
final EditText et1 = (EditText) findViewById(R.id.getprice);
Button getb1 = (Button) findViewById(R.id.getbutton);
getb1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent i1 = new Intent(GetPrice.this, Price1.class);
int fl1 = Integer.parseInt(et1.getText().toString());
i1.putExtra("theprice", fl1);
startActivity(i1);
}
});
public class Price1 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.price1);
String st1 = new String(getIntent().getExtras().getString("theprice"));
Integer int1 = Integer.valueOf(st1);
//some calculation with int1
TextView tv1 = (TextView) findViewById(R.id.price1text);
tv1.setText(String.valueOf(int1));
}
但是,当我按下“getbutton”时,应用程序崩溃
有什么问题
谢谢,没有stacktrace和实际错误
int fl1 = Integer.parseInt(et1.getText().toString());
是问题所在,字符串
不是整数的文本表示形式,或者它实际起作用,这是:
String st1 = new String(getIntent().getExtras().getString("theprice"));
问题是因为您在extras中存储了一个
整数
,现在正试图将其作为字符串
(请改用getInt(“价格”)
。没有堆栈跟踪和实际错误
int fl1 = Integer.parseInt(et1.getText().toString());
是问题所在,字符串
不是整数的文本表示形式,或者它实际起作用,这是:
String st1 = new String(getIntent().getExtras().getString("theprice"));
问题是因为您在extras中存储了一个整数
,现在正试图将其作为字符串
(使用getInt(“theprice”)
。使用Bundle.getInt(字符串键)
访问GetPrice
类中的intfl1
Integer int1 = getIntent().getExtras().getInt("theprice");
更新到较旧的JDK
此外,您不需要像这样在不同类型之间重新转换值:
String st1 = new String(getString...);
Integer int1 = Integer.valueOf(st1);
tv1.setText(String.valueOf(int1));
代码应该简化为这样的代码
String st1 = Integer.toString(getString...);
tv1.setText(st1);
甚至更好
Integer int1 = getInt...;
tv1.setText(String.valueOf(int1));
使用Bundle.getInt(字符串键)
访问intfl1
放入GetPrice
类
Integer int1 = getIntent().getExtras().getInt("theprice");
更新到较旧的JDK
此外,您不需要像这样在不同类型之间重新转换值:
String st1 = new String(getString...);
Integer int1 = Integer.valueOf(st1);
tv1.setText(String.valueOf(int1));
代码应该简化为这样的代码
String st1 = Integer.toString(getString...);
tv1.setText(st1);
甚至更好
Integer int1 = getInt...;
tv1.setText(String.valueOf(int1));
你能发布错误堆栈跟踪吗?对不起,我没有虚拟设备,只有我可以在我的设备上运行它。请在真实设备上执行调试并发布堆栈跟踪。这是怎么回事?。。。对不起,我是android新手。第一个正确答案属于@Tobor!请取消删除您的帖子:)您可以发布错误堆栈跟踪吗?对不起,我没有虚拟设备,只有我可以在我的设备上运行它。请在真实设备上执行调试并发布堆栈跟踪。这是怎么回事?。。。对不起,我是android新手。第一个正确答案属于@Tobor!请取消删除您的帖子:)如果使用“getint”,我会给出此错误:“构造函数字符串(int)未定义”,然后我会给出此错误:“String.valueof无法解析为类型”
Integer.toString(getIntent().getExtras().getint(“theprice”)
老实说,如果您不了解语言/编程(类型)的非常基础知识你会有更多的问题。强烈建议从一本关于编程/java的入门书或oracle提供的教程开始。你说得对,Brian,你的推荐书或教程是什么?如果使用“getint”,我会给出此错误:“构造函数字符串(int)未定义”,然后我会给出此错误:“String.valueof无法解析为类型”Integer.toString(getIntent().getExtras().getInt(“theprice”)
老实说,如果您不了解语言/编程(类型)的非常基础知识您将面临更多的问题。强烈建议您从一本关于编程/java的入门书或oracle提供的教程开始。您说得对,Brian,您推荐的书或教程是什么?如果使用“getint”,我会给出此错误:“构造函数字符串(int)未定义”,如果使用“getint”,我会给出此错误:“构造函数字符串”(int)未定义“