github https://github.com/codeka/advbatterygraph 上有一个项目,它在小部件中显示了有关电池的不同属性,例如瞬时电流(mA/h(等。我下载了这个项目,编译了它,在我的Nexus 5上运行它,它工作得很好。
我正在尝试做的是从这个小部件中获取这个即时电流(mA(值,并使用TextView在活动中显示它。
我研究了代码来解决问题,我发现:
1.该值存储在BatteryGraphWidgetProvider类的String(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() );
结果:"不幸的是,应用程序停止工作"。
如果这是太多的新手问题,请原谅我,但我刚刚开始 android 开发,我很确定每个人都经历过这个阶段。关于我如何完成这项任务的任何帮助/想法/建议将不胜感激!
android TextView 有多个实现setText
. 接受整数值的那个,尝试从您的资源中检索字符串。 在此处阅读更多内容。您应该将值传递为String
。您可以使用Integer.toString(int)
.
因此,我检查了您提到的上述库和您正在使用的函数,getBatteryCurrentInstant
float
中返回信息。因此,您需要按如下方式修改代码:
mMy_Variable.setText( Float.toString(b.getBatteryCurrentInstant()) );
或
mMy_Variable.setText( String.valueOf(b.getBatteryCurrentInstant()) );