Android (안드로이드) EditText 읽기전용 (readonly) 처리 하는 방법
EditText 위젯 사용시 읽기 전용으로 변경하기
xml 레이아웃에서 처리하는 방법 : 속성값 enabled를 false로 주시면 됩니다.
<EditText
android:id="@+id/myinfo_input_address"
android:layout_width="match_parent"
android:layout_height="@dimen/myinfo_modify_info_input_height"
android:layout_marginTop="@dimen/myinfo_modify_address_default_margin_top"
android:paddingLeft="@dimen/myinfo_modify_address_input_padding_left"
android:inputType="textMultiLine"
android:hint="@string/myinfo_input_address"
android:lines="3"
android:maxLines="3"
android:textSize="@dimen/myinfo_menu_text"
android:textColor="@color/color_08"
android:enabled="false"
android:background="@drawable/input_box_bg"/>
프로그램방식으로 처리하는 방법 : setEnabled()메소드를 사용하여 처리합니다.
EditText editWord = (EditText)findViewById(R.id.myinfo_input_address);
editWord.setEnabled(false);
EditText 소프트키보드 엔터키 클릭 이벤트 핸들링
엔터키가 눌렸을때 소프트 키보드를 내린 후 사용자가 원하는 이벤트 처리를 하기 위해서는 setOnEditorACtionListener()를 초기화 후 onEditorAction()메소드를 오버라이드 처리해서 키보드의 완료버튼(엔터키) 클릭 여부를 확인할 수 있어요. 완료처리를 위해 actionId 인자값을 EditorInfo.IME_ACTION_DONE 변수와 비교하여 처리합니다. 또는 완료 버튼 대신 검색 버튼을 표기할 수 도 있습니다. setImeOptions()메소드를 사용하여 타입을 설정하세요.
editText.setImeOptions(EditorInfo.IME_ACTION_SEARCH);
editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
boolean handled = false; // 키보드 내림
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE) { //완료버튼 클릭 처리
selectAllHistoryTask task = new selectAllHistoryTask();
searchContent = editText.getText().toString();
task.execute(searchContent);
} else if (actionId == EditorInfo.IME_ACTION_NEXT) {
handled = true; // 키보드 유지
}
return handled;
}
});
xml 레이아웃에서 처리시 imeOptions값으로 actionDone 를 지정하면 코드상에서 처리하는 EditorInfo.IME_ACTION_DONE 와 동일한 역할을 합니다.
<EditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="1"
android:inputType="text"
android:layout_marginLeft="15dp"
android:textColorHint="@color/blue_grey_4"
android:hint="Search..."
android:imeOptions="actionDone"
android:textColor="@color/color_white"
android:maxLength="20"/>