Android 台灣中文網

標題: 按鈕無法執行 [打印本頁]

作者: st904100    時間: 2016-5-9 15:28
標題: 按鈕無法執行
如圖  我一按下按鈕後他馬上跑出XXX已停止
程式碼是http://apk.tw/thread-770086-1-1.html這篇
logcat的地方也都除錯完了
但是還是出現已停止
想請問出了什麼問題

作者: ploglin    時間: 2016-5-9 15:47
出現錯誤的時候,LogCat 應該會有 Exception 的訊息才對
作者: st904100    時間: 2016-5-9 16:03
你是說這個嗎?  但是這裡我還不會解決....

作者: st904100    時間: 2016-5-9 16:06
還有這裡...

作者: st904100    時間: 2016-5-9 16:31
st904100 發表於 2016-5-9 16:03
你是說這個嗎?  但是這裡我還不會解決....

我個人覺得是
at com.example.easyledout.EasyLedOut$1.onClick(EasyLedOut.java:60)
這行出問題
但是我點到我EasyLedOut.java那邊的第60行
也就是  Sendout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                outNum = Integer.parseInt(editOutNum.getText().toString());

                array_51 = BigInteger.valueOf(512 + outNum).toByteArray();
                try {
                    out8051.write(array_51);
                    out8051.flush();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
     }
這段的第四行有問題(紅字)  但是我不知道錯在哪裡QQ
作者: st904100    時間: 2016-5-11 13:55
有人知道錯在哪嗎?
作者: pohyen    時間: 2016-5-19 14:54
是不是没有加activity在AndroidManifest.xml里面?
作者: mike110631    時間: 2016-5-20 10:01
這是因為 editOutNum.getText() 沒值
所以在 Integer.parseInt(editOutNum.getText().toString()); 轉換成 int 的時候因為
editOutNum.getText() 是空的所以失敗,做個空值+判斷是否為數字的判斷吧

作者: st904100    時間: 2016-5-25 23:46
pohyen 發表於 2016-5-19 14:54
是不是没有加activity在AndroidManifest.xml里面?

有喔我有加
作者: st904100    時間: 2016-5-25 23:49
mike110631 發表於 2016-5-20 10:01
這是因為 editOutNum.getText() 沒值
所以在 Integer.parseInt(editOutNum.getText().toString()); 轉換成  ...

呃...不好意思我還是java的新手...能請教一下要怎麼讓他能判斷呢...
作者: mike110631    時間: 2016-5-28 12:30
outNum = Integer.parseInt(editOutNum.getText().toString());
----------------------------------------------------------------------------------
try {
 outNum = Integer.parseInt(editOutNum.getText().toString());
} catch(Exception e) {
 System.out.println("error input...");
}

是我會用 try catch 的方法
如果 try 裡面的 parserInt 失敗的話會執行 catch 裡面的程式
作者: ploglin    時間: 2016-5-30 14:03
st904100 發表於 2016-5-25 23:49
呃...不好意思我還是java的新手...能請教一下要怎麼讓他能判斷呢...

可以用 editOutNum.getText().toString().isEmpty() 判斷裡面有沒有內容
作者: ricky52_be7    時間: 2016-8-25 03:42
ploglin 發表於 2016-5-30 14:03
可以用 editOutNum.getText().toString().isEmpty() 判斷裡面有沒有內容

這方法不能判斷輸入的是數字,
如果不是數字會出error
作者: blancamiao    時間: 2016-9-23 18:43
at com.example.easyledout.EasyLedOut$1.onClick(EasyLedOut.java:60) 這行是告訴你,錯的是哪一行,記得要去看上面的錯誤是何原因。

NumberFormatException:Invalid int:""

白話文就是,空字串,所以出現錯誤,若沒判斷錯誤,因為你沒輸入任何資料,當按下Button就會Un......

你試試寫個判斷,用if else即可,例如:

if(editOutNum.getText().toString().matches("")){
Toast.ma......(Toast訊息讓用戶不要忘記輸入)
}else{
執行你要做的事情
}

試試看,我也是初學者,一起加油!




歡迎光臨 Android 台灣中文網 (https://apk.tw/) Powered by Discuz! X3.1