github https://github.com/codeka/advbatterygraph上有一个项目,它显示了有关电池的不同属性,例如小部件中的瞬时电流(mA / h)等。我下载了项目,编译了它,在我的Nexus 5上运行它并且工作正常。
我要做的是从此窗口小部件中获取此即时当前(mA)值,并使用TextView在活动中显示它。
我研究了代码来解决问题,我发现:
1.该值存储在BatteryGraphWidgetProvider类的字符串(curr)中
2. BatteryStatus类有一个方法getBatteryCurrentInstant();
我在我的活动中尝试了类似的东西但是不够幸运:
BatteryStatus b = new BatteryStatus();
b.getBatteryCurrentInstant;
/*Made a TextView Variable, and by using "findViewById" method I got the
reference to that variable. Afterwards, I set it like this:*/
mMy_Variable.setText( (int) b.getBatteryCurrentInstant() );
结果: “不幸的是,App停止了工作”。
请原谅我,如果这是一个太多的新手问题,但我刚刚开始Android开发,我很确定每个人都经历过这个阶段。关于如何完成这项任务的任何帮助/想法/建议都将不胜感激!
答案 0 :(得分:2)
android TextView有setText
的多个实现。接受整数值的那个,尝试从您的资源中检索字符串。
read more here。你应该将你的值传递给String
。你可以使用Integer.toString(int)
。
答案 1 :(得分:0)
因此,我检查了您提及的上述库以及您正在使用的功能,getBatteryCurrentInstant
会返回float
中的信息。因此,您需要按如下方式修改代码:
mMy_Variable.setText( Float.toString(b.getBatteryCurrentInstant()) );
OR
mMy_Variable.setText( String.valueOf(b.getBatteryCurrentInstant()) );