2014.09.03 02:33


[ Android / EditText ] Keyboard 이벤트, 타입 변경



참고 

http://caliou.tistory.com/33

http://ccdev.tistory.com/31

:http://www.androidpub.com/1104990

 

 

1. 변경 부분

<EditText
     android:id="@+id/et_search"
     android:layout_width="match_parent"
     android:layout_height="40dp"
     android:layout_margin="10dp"
     android:textSize="15sp"
     android:textStyle="bold"
     android:inputType="none" />

 

표시된 부분을 수정하면 키보드 설정이 변경됩니다.

아니면 다음과 같이 해주셔도 됩니다!

타입 변경 :  imeOptions

EditText 항목 속성 중에 있습니다.
android:imeOptions="actionSearch" 이렇게 정의해주시면 검색 모드로 키보드가 뜨게됩니다.
이 외에도 여러가지 action값이 있습니다. (작성 : Question 영)
 

키보드 종류에 따른 수정은 자세하게 나와있는 블로그가 있어 스크랩했습니다.

 

속성은 세가지, Class, Variation, Flag 세가지가 있고, 각 속성은 중복되어 사용가능 합니다. 중복하여 사용하려면, |로 연결하여 사용합니다.


Class는 숫자, 문자, 비밀번호 등 입력문자의 종류를 지정합니다.

Variation은 Class의 세부적속성이 들어가죠.

Flag는 이보다 더 세부적인 속성으로, 대문자 자동변환 여러줄 입력 등의 동작을 수행한다고 합니다. 


코드에서 inputType의 속성을 변경할때에는 setInputType이나, setRawInputType메서드를 호출합니다. 


대표적인 몇가지만 정리해 보자면, 다음과 같습니다요,

 

 

inputType

설명

none

편집할 수 없는 문자열

Text

단순 문자열

textImeMultiLine

여러줄 입력 가능한 문자열

textPostalAddress

우편번호

textEmailAddress

이메일 주소

textPassword

비밀번호

textVisiblePassword

비밀번호 이지만 숫자는 보임.

number

숫자

numberSigned

숫자와 부호

numberDecimal

숫자와 부호와 소수점

phone

전화번호

datetime

날짜와 시간

 

2. 연결 및 버튼 이벤트 부분

 

아래의 코드는 위에 설정해놓은 Xml layout 코드를 연결하고 Done 버튼을 눌렀을때 검색이 실행 되도록 

제가 작성한 Java 부분 코드입니다.

검색 버튼을 눌렀을 때 처리될 이벤트 리스너는 editText.setOnEditorActionListener 메서드를 활용 하면 됩니다.

 

이전에 설명한 부분을 참고하여 Custom 하게 코드를 변경 할 경우 키보드 활용은 다양해 질 수 있습니다.

 

 

 

< Java Code >

 

 

public class SearchActivity extends Activity implements OnEditorActionListener{

 EditText et_search;
 
 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity);
     
     et_search = (EditText)findViewById(R.id.et_search);
     et_search.setOnEditorActionListener(this);
    
 }
}

@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
 // TODO Auto-generated method stub

 switch (actionId) {
 case EditorInfo.IME_ACTION_SEARCH:
  
  Toast.makeText(getApplicationContext(), "검색", Toast.LENGTH_LONG).show();
  
  v.setText("");
  InputMethodManager imm = (InputMethodManager)getSystemService(getApplicationContext().INPUT_METHOD_SERVICE);
  imm.toggleSoftInputFromWindow(v.getApplicationWindowToken(),InputMethodManager.SHOW_FORCED,0);
  
  break;
 default:
  return false;
 }
  
 return false;
}

 


신고


Posted by injunech

티스토리 툴바