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)未定义“