我正在構建一個Android應用程序,我面臨着兩個問題。我目前使用onKey方法來解析文本框來獲取用戶輸入的數據。這工作正常,但如果用戶選擇讓文本框爲空併發送數據,這將導致我的應用程序崩潰。我想添加一個try和catch來處理/忽略該異常,並且即使按下回車鍵也沒有發送任何內容。onKey和異常
我按下回車鍵時會出現第二個問題。這導致發送數據2次,這有點令人討厭。我認爲這是因爲我的代碼沒有反彈,程序註冊了一個按鍵和一個鍵釋放。我真的不知道如何過濾這個,我可能需要一些輸入。
這裏是我的代碼:
//Listen to the "Enter" button state changes by user selection of keypad
txtSetKp.setOnKeyListener(new OnKeyListener(){ //This method waits for the "enter" key to be hit
public boolean onKey(View arg0, int arg1, KeyEvent arg2) {
switch(arg1)
{
case KeyEvent.KEYCODE_ENTER:
float newSetKp = Float.parseFloat(txtSetKp.getText().toString());
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); //If "enter" pressed, hide keyboard
if(btSocket != null && btSocket.isConnected()){
mConnectedThread.send("P" + newSetKp);
Log.e(TAG, "P"+newSetKp);
}
imm.hideSoftInputFromWindow(txtSetPoint.getWindowToken(), 0);
return true;
default:
return false;
}
}
});
//Listen to the "Enter" button state changes by user selection of keypad
txtSetKi.setOnKeyListener(new OnKeyListener(){ //This method waits for the "enter" key to be hit
public boolean onKey(View arg0, int arg1, KeyEvent arg2) {
switch(arg1)
{
case KeyEvent.KEYCODE_ENTER:
float newSetKi = Float.parseFloat(txtSetKi.getText().toString());
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); //If "enter" pressed, hide keyboard
mConnectedThread.send("I" + newSetKi);
imm.hideSoftInputFromWindow(txtSetPoint.getWindowToken(), 0);
return true;
default:
return false;
}
}
});
感謝您的幫助!
您可以發佈您logcat的嗎? – Vinay 2013-03-15 05:08:02
當然,我試圖發佈一個副本/過去,但格式是相當醜陋的有沒有辦法做到這一點正確? – Mathieu660 2013-03-15 05:20:47