将String转换为Integer使我的应用程序强制关闭

时间:2016-11-24 20:11:02

标签: java android

我正在尝试获取系统时间,当我把它放在textView中作为字符串一切正常时,但是当我将字符串转换为Integer时,它使我的应用程序强行关闭! 这是我的代码:

    TextView texttime = (TextView) findViewById(R.id.txttime);

    TimeZone tz = TimeZone.getTimeZone("GMT+03:30");
    Calendar c = Calendar.getInstance(tz);
    String time = String.format("%02d" , c.get(Calendar.HOUR_OF_DAY))+
    String.format("%02d" , c.get(Calendar.MINUTE));

    Integer itime = Integer.valueOf(time);
    int mtime = (itime-2350);
    texttime.setText(mtime);

有什么问题?

3 个答案:

答案 0 :(得分:1)

你在这里进行了非常奇怪的转换 - 这根本没有意义。

我非常确定setText()需要字符串。但是你想将原始的 int 传递给它。

你知道 - 你已经使用了一个String格式化程序来将日历内容变成一个字符串。那你为什么那么想把它变成一个整数,然后你变成一个int?!

长话短说:你应该退一步说明你想要产生什么样的价值以及应该去哪里?

答案 1 :(得分:0)

您尝试强制转换为Integer的值无效,因为此字符串concat没有意义

String time = String.format("%02d" , c.get(Calendar.HOUR_OF_DAY))+
    String.format("%02d" , c.get(Calendar.MINUTE));

让你的时间是2:45,变量时间的值将是:2.0045.00“,所以你试图投射的文字不是有效值

答案 2 :(得分:0)

首先除TextView之外的setText String方法作为方法参数,但是这里传递一个整数值。 textView.setText(mtime)

但即使您想要这样做,也可以通过向整数添加字符串文字来实现。 textView.setText(""+mtime)