讓android radio button 按鈕圖示置中
一般來說android的預設radio button樣式長這樣

資料來源:Android Developer
當然在設計時可以有很多的變形,像是不顯示文字,只顯示按鈕,或是將按鈕圖示改為自己設計的美工圖檔…有很多的變形,但是其唯一不變的就是Radio Button的對齊方式,固定為靠左對齊,所以當不顯示文字時,按鈕依舊在左邊,無法置中。
如果想要在讓按鈕置中的話,就必須改寫一下程式碼,讓radio button在繪製時可以讓button置中。
當然網路上依舊是神人不斷~已經有開發者解決了這個問題,有興趣的開發者可以連結標題參考解決方式。
解決android:imeOptions=”actionDone”在中文輸入法時無回應的問題
若有開發android app的愛好者們,應該會很常用到EditText這一個widget
其中有個屬性為android:imeOptions,主要用於當使用者輸入完成後,按下某一個按鍵後,觸發OnEditorActionListener事件來處理一些東西。
例如設定android:imeOptions=”actionDone”,代表按下”done”或”enter”按鍵時,會觸發。
然而就在一切都很美好的狀況下,這玩意兒在中文輸入法時(以htc的手機為例),按下“enter”鍵都無回應。看來在中文輸入法的”enter”鍵沒有對應到actionDone。

那該怎麼解決呢?
分為兩部分,一部分是xml的描述,一部分是程式碼
- 在layout xml描述部分,將android:imeOptions設定為”actionDone|actionUnspecified”
- 程式碼部分,在OnEditorActionListener實現下列判斷式
private OnEditorActionListener mInputOnEditorActionListener = new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
boolean handled = false;
// 若是按下Done or Enter都可輸入
if (actionId == EditorInfo.IME_ACTION_DONE
|| (actionId == EditorInfo.IME_ACTION_UNSPECIFIED && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
// 流程處理
handled = true;
} /* end of if */
return handled;
}
};