2016-08-16 93 views
0

我試圖在EditText(inputOne)上設置焦點,但是我的代碼顯示奇怪的行爲。當我按下按鈕時,inputOne獲得焦點,一切都很好。如果我在SoftKeyboard上按下「Enter」鍵,觸發onKeyListener,則inputTwo將保持焦點。在這兩種情況下,「inputOne.requestFocus」返回true。 這是我的代碼:EditText.requestFocus()不能與onKeyListener一起使用

public class EditSeriesActivity extends Activity { 

private FlashcardSeries series; 

private EditText inputOne; 
private EditText inputTwo; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.editseries); 
    Intent intent = getIntent(); 
    series = intent.getParcelableExtra("EXTRA_MASSAGE"); 
    TextView textView = (TextView) findViewById(R.id.nameseries); 
    textView.setText(series.getName()); 
    inputOne = (EditText) findViewById(R.id.side1); 
    inputTwo = (EditText) findViewById(R.id.side2); 
    inputTwo.setOnKeyListener(new View.OnKeyListener() 
    { 


     public boolean onKey(View v, int keyCode, KeyEvent event) 
     { 
      if (event.getAction() == KeyEvent.ACTION_DOWN) 
      { 
       switch (keyCode) 
       { 
        case KeyEvent.KEYCODE_DPAD_CENTER: 
        case KeyEvent.KEYCODE_ENTER: 
         addCardToSeries(v); 
         break; 
        default: 
         break; 
       } 
      } 
      return false; 
     } 
    }); 

} 

public void addCardToSeries(View view){ 
    series.addFlashcard(new Flashcard(inputOne.getText().toString(), inputTwo.getText().toString()), this); 

    inputTwo.setText(""); 
    inputOne.setText(""); 
    inputOne.requestFocus(); 

} 
} 

回答

0

試試這個

inputOne.requestFocus(); 
InputMethodManager inpuMethod = (InputMethodManager) getSystemService(G.context.INPUT_METHOD_SERVICE); 
inpuMethod.showSoftInput(inputOne, InputMethodManager.SHOW_IMPLICIT); 
+0

它沒有任何影響。 該按鈕仍然會切換焦點,onKeyListener不會 – Noxicon

相關問題