2011-08-30 56 views
3

這裏我有一個微調框和微調框下面的一些文本框。當其中一個文本字段有焦點時,我從微調選擇一個項目,我看到焦點仍然在該文本字段,現在我想要做的是,在微調項目選擇我想改變焦點從該文本字段到微調。 有什麼辦法將焦點設置到微調器?象,將焦點添加到微調框

@Override 
    public void onItemSelected(AdapterView<?> parent, View view, 
      int position, long id) { 
     //set focus to the spinner 
      } 
     } 

回答

5

曾在我的情況做

@Override 
    public void onItemSelected(final AdapterView<?> parent, View view, 
      final int position, long id) { 

     parent.post(new Runnable() { 
      @Override 
      public void run() { 
       spinner.requestFocusFromTouch(); 
      } 
     }); 
    } 
+1

也爲我工作,謝謝!當你希望屏幕滾動到微調器時,用'requestFocusFromTouch'代替'requestFocus'也解決了這個問題。 – dnet

7

我也有類似的問題,並找到了答案here的一部分。

但是,我還必須從我的代碼中設置focusable(true)和focusableInTouchMode(true),而不是XML文件。直到我在代碼中設置了可聚焦屬性之後,我才能使其工作。這裏是我的項目樣本:

spinUoM.setFocusable(true); 
spinUoM.setFocusableInTouchMode(true); 

spinUoM.setOnFocusChangeListener(new OnFocusChangeListener() { 

     @Override 
     public void onFocusChange(View v, boolean hasFocus) { 
      if(hasFocus) 
       DialogDefineRecipeActivity.this.spinUoM.performClick(); 
     } 

    }); 
+0

它非常適合我的需求,非常感謝@Kaptkaos! – DoubleYo

+0

完美這爲我工作..謝謝..! – vijay