2013-03-04 10 views
6

Próbuję uchwycić zdarzenie usunięcia klawiatury z ekranu i używam klasy OnEditorActionListener. Jednak jego metoda onEditorAction nigdy nie zostanie wywołana.Android. onEditorAction nigdy nie zadzwonił pod numer

To mój EditText w XML:

<EditText 
    android:id="@+id/editTextSearch" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="20dp" 
    android:layout_marginLeft="10dp" 
    android:layout_marginRight="10dp" 
    android:layout_marginTop="50dp" 
    android:layout_weight="0.05" 
    android:background="@color/white" 
    android:ems="10"> 
</EditText> 

ten sposób pracować z nim w pliku Java:

private void createTextEdit() 
{ 
    EditText searchTextField = (EditText)findViewById(R.id.editTextSearch); 
    searchTextField.addTextChangedListener(new TextWatcher() 
    { 
     public void afterTextChanged(Editable s) 
     { 
      System.out.println("AFTER TEXT CHANGED");                
     } 
     public void beforeTextChanged(CharSequence s, 
     int start, int count, int after) 
     { 
      System.out.println("BEFORE TEXT CHANGED " + s); 
     } 

     public void onTextChanged(CharSequence s, 
       int start, int before, int count) 
     { 
      System.out.println(s); 
     } 
    }); 

    searchTextField.setOnEditorActionListener(new OnEditorActionListener() 
    { 
     public boolean onEditorAction(TextView v, int actionId, KeyEvent event) 
     { 

      System.out.println("ACTION ID " + actionId);//NEVER CALLED 

      if(actionId == EditorInfo.IME_ACTION_DONE) 
      { 
       System.out.println("ACTION DONE!!!!!!!!!!"); 
       return true; 
      } 

      return false; 
     } 
    }); 

    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.showSoftInput(searchTextField, InputMethodManager.SHOW_IMPLICIT); 
} 

Bez względu na to, co zrobić z searchTextField czy mogę rozpocząć edycję lub dokończyć , potrzebna metoda nigdy nie jest wyrzucana. Co ja robię źle?

Odpowiedz

0

sam problem tutaj na Nexusa 7.

Myślałem, że to był imeOptions, ale nie.

Działa na moim tablecie, jeśli ustawię android:inputType="text".

Zakładam, że działa z innym typem inputType.

Myślę, że to błąd na Nexusie.

Powiązane problemy