2011-09-23 4 views
1

여기에는 actionDone으로 imeOptions를 설정 한 몇 개의 EditText가 있습니다. Android 2.1 또는 Android 2.2를 사용하여 에뮬레이터에서 응용 프로그램을 실행할 때 가상 키보드의 Enter 키가 "완료"됩니다.imeOptions actionDone with Android 2.3

그러나 Android 2.3 (스트레이트 2.3, Nexus S)을 실행하는 휴대 전화에서 응용 프로그램을 실행할 때 가상 키보드의 Enter 키는 여전히 작동합니다. 리턴 버튼과 그것을 누르면 편집 텍스트로 개행을 입력합니다.

가상 키보드의 리턴 키를 Android 2.3에서 "완료"로 말하고 동작시키는 방법은 무엇입니까?

+1

전화'setSingleLine()에 대한'자바 코드 또는 지정 방법'안드로이드 : 만일 Singleline ='XML에서 "true"로? – kingori

+1

이렇게하면 "완료"버튼이 나타나지만 텍스트가 줄 바꿈을하지 않고 EditText를 강제로 한 줄로 만듭니다. 난 래핑하고 "완료"버튼을 가지고 EditText 싶습니다. 2.1 및 2.2에서는 제대로 작동하지만 2.3에서는 적절하게 동작하지 않습니다. – Andrew

+0

2.3.4 이후 버그로 보입니다. 이 스레드를 확인하십시오 : http://stackoverflow.com/questions/6218574/android-nexus-s-edittext-settings-ignored-2-3-4 BTW 감사합니다 kingori, 그건 내 응용 프로그램에 대한 충분합니다. – Emilio

답변

2

다음과 같이 구현했으며 잘 작동합니다. 도움을 받으십시오.

EditText m_etDone = (EditText) findViewById(R.id.am_etDone); 
EditText m_etSearch = (EditText) findViewById(R.id.am_etSearch); 
m_etDone.setOnEditorActionListener(new DoneOnEditorActionListener()); 
m_etSearch.setOnEditorActionListener(new DoneOnEditorActionListener());       
    class DoneOnEditorActionListener implements OnEditorActionListener {  
@Override 
public boolean onEditorAction(TextView p_v, int p_actionId, KeyEvent p_event) { 
    if (p_actionId == EditorInfo.IME_ACTION_DONE) 
{ 
    InputMethodManager m_imm = (InputMethodManager)p_v.getContext()  .getSystemService(Context.INPUT_METHOD_SERVICE); 
    m_imm.hideSoftInputFromWindow(p_v.getWindowToken(), 0); 
      return true; 
     } 
     else if(p_actionId == EditorInfo.IME_ACTION_SEARCH) 
     { 
      Toast.makeText(getApplicationContext(),"Search Text",Toast.LENGTH_SHORT).show(); 
      return true; 
     } 
    return false; 
    } 
} 

레이아웃 파일 :

<EditText 
    android:id="@+id/am_etDone" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:hint="Enter some text" 
    android:imeOptions="actionNext" 
    android:singleLine="true" 
    android:imeActionLabel="Done"/>  
<EditText 
    android:id="@+id/am_etSearch" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:hint="Enter search text" 
    android:imeOptions="actionSearch" 
    android:singleLine="true" 
    android:layout_below="@+id/am_etDone" 
    android:imeActionLabel="Search"/>