2일차때 EditText 설정하는것을 알아봤다면 이제 적어 놓은것들을 자바소스로 받아서 한번 출력해보자
EditText에 관한 기본적인 설명에 관해서는
아래 링크를 통해서 보면 될것 같다.
EditText에서 우리가 글을 다른데로 보내거나 할땐 우리는 두가지 방법을 쓴다.
1. 키보드 안에 있는 전송이나 완료 버튼 누르기
2. 키보드에서 나와 버튼을 따로 누르기
각각의 방법에서 어떻게 출력할것인지 알아보자.
1. 키보드 안에 있는 전송이나 완료 버튼 누르기
안드로이드에서의 키보드를 확인해보면
위 부분을 다른 아이콘을 볼수 있는데
이는 변경이 가능하다
이를 가능케 하는 속성이
android:imeOptions="값" 이다
안에 값에 따른 모양은 아래와 같다.
이제 외형적인것을 봤으니 자바 소스적으로 어떻게 하면 EditText에서 적혀져 있는것을 가져올지 예제를 통해서 보자.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText edit1 = (EditText)findViewById(R.id.edit1);
edit1.setOnEditorActionListener(new EditText.OnEditorActionListener(){
@Override
public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
Toast.makeText(getApplicationContext(),edit1.getText(),Toast.LENGTH_SHORT).show();
return true;
}
});
}
|
cs |
EditText의 ID를 가져오는 부분에서부터 보자.
EditText는 가져올때 아래와 같이
final EditText edit1 = (EditText)findViewById(R.id.edit1);
final로 받았는데 final로 받은 이유는 무명클래스에서 edit1을 참조하기 때문에 바뀌지 않을것이라는것을 보장하기 위해서이다.
edit1.setOnEditorActionListener() 이 함수는 EditText 내에 있는 imeOption에서의 이벤트를 받기 위해서이다.
해당 메소드는 EditText.OnEditorActionListener() 이벤트 리스너를 함수 인자로 받기 때문에 무명 클래스로
해당 인터페이스의 객체를 생성해야 한다.
EditText.OnEditorActionListener() 해당 인터페이스오 객체를 새로 생성하면
onEditorAction() 메소드를 오버라이딩 해서 재정의 해야 한다.
나는 onEditorAction() 메소드 안에 edit1의 값을 .getText() 메소드로 불러오고 .toString()으로 해서 해당 값을 문자열로
변경 한것을 Toast 메시지로 띄웠다.
그리고 중요한 점은 onEditorAction() 메소드는 반환형이 boolean인대
true로 설정을 하면 입력이 완료 되어도
해당 이벤트 리스너가 계속 작동해서 이벤트를 수신한다.
false로 하면 이벤트 리스너가 입력이 완료되면 이벤트 리스너는 작동을 중지한다.
그래서 false로 하면 키보드도 없어진다.
'코딩일기 > android studio' 카테고리의 다른 글
Android 독학 7일차 : Radio Button 이벤트 처리 하기 (0) | 2021.03.11 |
---|---|
Android 독학 6일차 : CheckBox 이벤트 처리 (0) | 2021.03.11 |
안드로이드 독학 5일차 : 이벤트 리스너(event listener) (0) | 2021.03.09 |
안드로이드 독학 4일차 : 커스텀 버튼 만들기 (0) | 2021.03.09 |
안드로이드 독학 4일차 : res 폴더 분석하기 (0) | 2021.03.08 |