2017-08-05 47 views
2

github上有一個項目https://github.com/codeka/advbatterygraph,它顯示了有關電池的不同屬性,如小部件中的瞬時電流(mA/h)等。我下載了這個項目,編譯了它,在我的Nexus 5上運行,並且運行良好。無法在活動中顯示widget的值作爲TextView

我想要做的就是得到這個瞬時電流(毫安)來自此小部件的值,並使用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()); 

結果: 「不幸的是,應用程序停止工作」。

對不起,如果這是太多的新手問題,但我剛開始使用android開發,我很確定每個人都經歷了這個階段。任何關於如何完成此任務的幫助/想法/建議都將非常感謝!

+0

請張貼logcat的額外的Java代碼 –

+0

這裏一起是logcat的文本中的鏈接: HTTP:// textsaver.flap.tv/lists/1k9o,並對不起你在談論什麼「額外的Java代碼」? @KavachChandra – Arslan

回答

2

android textview有setText的多個實現。接受整數值的那個嘗試從資源中檢索一個字符串。 read more here。你應該把你的價值作爲String。你可以使用Integer.toString(int)

+0

我試了一下,現在應用程序正在工作,但顯示0而不是它應該是的值(mA)。 – Arslan

+0

看起來'getBatteryCurrentInstant'返回零。確保小部件使用這個確切的值。 –

+0

如果我沒有錯,我瀏覽了整個代碼,並看到https://github.com/codeka/advbatterygraph/blob/master/app/src/main/java/au/com/codeka/advbatterygraph/BatteryGraphWidgetProvider .java(請看看如果您不介意)有一個字符串變量「curr」,它使用以下語句存儲當前即時值: String curr = String.format(Locale.US,「%。2f mA (inst)「,batteryHistory.get(0).getBatteryCurrentInstant()); – Arslan

0

所以,我檢查了上面提到的庫和你正在使用的函數,getBatteryCurrentInstant返回float中的信息。所以,你需要修改你的代碼如下:

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

OR

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

我照你說的做了,現在它顯示的是0.0值。 – Arslan

+0

從庫中的函數返回的值必須僅爲0.0。嘗試獲取其他值並檢查它們是否返回預期值 –

+0

雖然它在小部件中正常工作,但它不在Activity中。 好吧,我會盡力做到這一點。 – Arslan

相關問題