2011-03-02 26 views
0

我是Android編程的新手,我正在製作一個猜數字遊戲以瞭解基本的Android代碼。在我的程序中,我有一個EditText(基本上是一個TextField),我想知道如何改變用戶輸入的任何內容。到目前爲止,我已經嘗試過Integer.parseInt(字符串),但它不起作用。這裏是我現在所擁有的代碼:通過Android將字符串轉換爲Int

EditText textfield = (EditText) findViewById(R.id.textfield); 
String label = textfield.getText().toString(); 
int guess = Integer.parseInt(label); 

當我運行這個程序調試我的手機上,這一切,直到我按我把這個代碼與按鈕正常工作。當我按下按鈕時,程序關閉,並彈出一個說

「應用程序Test(process com.android.test)已意外停止,請重試。」

每當我嘗試運行該程序時都會發生這種情況。我已經調試過,並且將問題隔離到解析int的代碼行。我如何完成這項工作?

+0

Integer.parseInt()行標籤的值是什麼? – 2011-03-02 01:10:42

+0

如果你確切地知道哪一行會觸發該錯誤,爲什麼不在它周圍放置'try' ...'catch'並分析異常? – 9000 2011-03-02 01:18:54

+1

你可以發佈堆棧跟蹤嗎?這是爲了更容易調試。 – exception01 2011-03-02 01:21:48

回答

1

您可能會收到NumberFormatException,但這暫時還不足以幫助您。

你需要做的是become familiar with some of the Android debugging facilities

使用平臺工具啓動手機模擬器。

打開命令提示符並導航至android-sdk\platform-tools目錄。

運行adb logcat連接到正在運行的模擬器。在模擬器中,運行您的程序並導致錯誤發生。您將在命令行窗口中獲得堆棧跟蹤,以幫助您隔離問題。

結帳how to use LogCat on the dev site

0

每當您發生崩潰時,您都需要打印出調用堆棧。這顯示了你到底發生了什麼問題。

在這種情況下,也許你沒有輸入數字?每當你解析一個字符串時,一定要圍繞Integer.parseInt放置一個try/catch,否則用戶可能會通過輸入非數字的東西來崩潰你的應用程序。

唯一的其他選擇是R.id.textfield不是EditText,或者在此特定佈局中沒有R.id.textfield。如果您已經打印了堆棧跟蹤,我們肯定會知道。

+0

謝謝。我應該捕捉什麼異常? – user600842 2011-03-02 01:14:33

+0

NumberFormatException。 – EboMike 2011-03-02 01:23:11