2012-10-01 58 views
2

我不知道如何搜索這個主題,所以我希望這裏沒有相同的問題。Android:已禁用查看獲取焦點

在我的Activity的「菜單」中,我有兩個帶有EditText的RadioButtons,用戶應該選擇兩個選項之一,然後在EditText中輸入一些值。但是,第一個RadioButton有一個附加選項,可通過CheckBox選擇,因此如果用戶檢查CheckBox,則會啓用另一個EditText。該EditText的是解散,並通過onCheckedChangeListener兩個RadioButtonsCheckBox這樣

radio1.setOnCheckedChangeListener(new OnCheckedChangeListener() { 
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
       if(isChecked){ 
        if(radio2.isChecked()){ 
         radio2.setChecked(false); 
        } 
        edit1.setEnabled(true); 
        check1.setEnabled(true); 
       }else{ 
        check1.setEnabled(false); 
        check1.setChecked(false); 
       } 
      } 
     }); 

啓用現在的問題是,當我選擇一個選項,並在第一EditText輸入一個值,而第二個仍然被禁用,我可以按下「前進按鈕」(我真的不知道它是如何調用的,看下面的圖片),禁用EditText得到專注。

enter image description here

而這裏的,不應該集中

enter image description here

它不應該是一個殘疾人View沒能foucsed的EditText?這甚至是可能的,這絕對是不合邏輯的。有沒有一種方法來設置這一般或我每次更改狀態時添加setFocusable(boolean)

+0

你能清楚和詳細說明你的代碼嗎? editText.setEnabled(false)不會禁用edittext,也不會使editText突出顯示。代碼中必須存在錯誤的地方。順便說一句,你最初禁用了你的edittext? – Enthusiast

+0

如果你仔細閱讀,你會發現我已經寫道:通過按下android鍵盤上的按鈕(第一個圖像上的紅色圓圈),EditText被突出顯示。此外,我最初禁用視圖的位置並不重要,這是關於他們最初被禁用並可以集中的原則,我認爲什麼是不合邏輯的。 –

回答

2

即使setEnabled爲false,editTexts仍然可以獲得焦點。要禁用焦點,請應用editText.setFocusable(false)。在單擊軟鍵盤上的ime選項時,如果不存在其他可編輯元素,則將其隱藏在軟鍵盤上。