无法将小组件中的值显示为活动中的文本视图



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).

因此,我检查了您提到的上述库和您正在使用的函数,getBatteryCurrentInstantfloat中返回信息。因此,您需要按如下方式修改代码:

mMy_Variable.setText( Float.toString(b.getBatteryCurrentInstant()) );

mMy_Variable.setText( String.valueOf(b.getBatteryCurrentInstant()) );