Android 台灣中文網

標題: 幫忙看一下哪邊出錯了 [打印本頁]

作者: xul410170    時間: 2014-4-18 01:04
標題: 幫忙看一下哪邊出錯了
本帖最後由 xul410170 於 2014-4-18 01:06 編輯

用手機執行到這一個副程式之後就卡住,然後崩潰了
搞不太懂哪邊出了毛病


protected void calc(){
                TextView tv1 = (TextView) findViewById(R.id.tv1);
                TextView tv2 = (TextView) findViewById(R.id.tv2);
               
                double p=0, m=0;
               
                if(unit.getCheckedRadioButtonId()==R.id.rb1){
                        p = Double.parseDouble(value.getText().toString());
                        m = p*3;
                }else{
                        m = Double.parseDouble(value.getText().toString());
                        p = m/3;
                }
                tv1.setText(String.format("%d",p + "度"));
                        
                tv2.setText(String.format("%d",m + "元"));
        }


作者: whl    時間: 2014-4-18 06:49
因為 value 沒打數字嗎?
作者: xul410170    時間: 2014-4-18 10:26
value數值是用手機輸入的
implements OnCheckedChangeListener,TexrWatcher, TextWatcher {
       
        RadioGroup unit;
        EditText value;
       
        //
       

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
               
                //
                unit = (RadioGroup) findViewById(R.id.unit);
                unit.setOnCheckedChangeListener(this);
               
                value = (EditText) findViewById(R.id.value);
                value.addTextChangedListener(this);
               
        }

作者: whl    時間: 2014-4-18 16:24
Value.getEdittext.tostring 試試看
作者: xul410170    時間: 2014-4-18 21:08
要放在哪一行?


作者: monitorstudio    時間: 2014-4-18 23:04
xul410170 發表於 2014-4-18 21:08
要放在哪一行?

應該是替換掉value.getText().toString()

作者: mike110631    時間: 2014-4-19 18:41
感覺最有可能錯誤的是 輸入的內容 無法 parse 成 double 型態
作者: xul410170    時間: 2014-4-22 15:47
直接置換會出先bug
作者: CarolHsieh    時間: 2014-4-23 11:11
p = Double.parseDouble(value.getText().toString());
在這裡下中斷點看看
value 是不是 null
作者: pig7609    時間: 2014-4-23 12:42
有錯誤訊息 或是完整的程式碼可以參考嗎?
作者: xul410170    時間: 2014-4-25 17:57
整個程式長這樣

這裡好多人可問,真是太感謝了

power.7z

1.2 MB, 下載次數: 0, 下載積分: 碎鑽 -1 個

程式碼


作者: xul410170    時間: 2014-4-25 18:01
p = Double.parseDouble(value.getText().toString());
這裡下中斷
value 是有數值的
作者: CarolHsieh    時間: 2014-4-28 10:29
xul410170 發表於 2014-4-25 18:01
p = Double.parseDouble(value.getText().toString());
這裡下中斷
value 是有數值的

試試看這樣改
tv1.setText(String.format("%.0f 度",p));      
tv2.setText(String.format("%.0f 元",m));
作者: mosquito609    時間: 2014-9-19 16:38
有完整的程式碼可以參考嗎?   


作者: jasonlink    時間: 2014-9-20 02:01
有解決問題嗎,如果有可以分享一下錯誤在哪~
作者: messengerses    時間: 2014-9-30 01:06
tv1.setText(String.format("%d",p + "度"));
應該改成
tv1.setText(p + "度");

tv2.setText(String.format("%d",m + "元"));
應該改成
tv2.setText(m + "元");




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