2017-06-13 60 views
0

我的代碼如下所示。在程序的早些時候,我讓用戶輸入一個int值並將其傳遞到文本視圖中,以便他們可以查看數量並且不再編輯它。Android Studio應用程序中的Integer.parseInt(bankBal.toString())致命錯誤

現在,我試圖從同一個文本視圖中得到一個int。問題是接受數量的int在不同的函數中,所以我不能只使用該int。

這是爲了創建int balRem,「查找」文本視圖框,在文本視圖中讀入內容,並最終以balRem中的in作爲銀行文本視圖中「餘額」的整數。

我這裏的代碼,並從錯誤代碼的主要線路如下。列出的第三行發生錯誤。

int balRem; 
    TextView bankBal = (TextView) findViewById(R.id.bankBal); 
    //String balRemStr = bankBal.toString(); 
    balRem = Integer.parseInt(bankBal.toString()); 

java.lang.IllegalStateException:無法機器人執行方法:的onClick

所致:java.lang.NumberFormatException:java.lang.reflect.InvocationTargetException

所致對於輸入字符串:「android.support.v7.widget.AppCompatTextView {aeb8167 V.ED ..... ........ 1037,448-1251,539#7f0d0082 app:id/bankBal}」

編輯 - 解決欺騙,請參閱評論。

@avojak不,它不是。這裏的問題是數字的來源,而不是數字本身。 - EJP

+0

使用'TextView.getText()'或任何正確的API是獲取文本出來的文字視圖。不''toString()'。 – EJP

+0

@EJP謝謝!這有效,有一個變化。它需要'balRem = Integer.parseInt(bankBal.getText()。toString());'上班。感謝幫助。 – Mazen

+0

@avojak不,它不是。這裏的問題是數字的來源,而不是數字本身。 – EJP

回答

0

你的代碼試圖把TextView的對象,並將其轉換爲字符串,這是給你的錯誤。

你應該實際上做的是讓指定給TextView對象的文本值,並使用該代替。

balRem = Integer.parseInt(bankBal.toString()); 

balRem = Integer.parseInt(bankBal.getText().toString()); 

Link to Android Documentation

0

您應該使用bankBal.getText(); 得到一個TextView對象的文本內容。

相關問題