无法在小部件中将值显示为活动中的TextView

时间:2017-08-05 22:42:44

标签: java android textview widget

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开发,我很确定每个人都经历过这个阶段。关于如何完成这项任务的任何帮助/想法/建议都将不胜感激!

2 个答案:

答案 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()) );