我正在尝试获取系统时间,当我把它放在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);
有什么问题?
答案 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)