=================================
=================================
=================================
출처: http://blog.naver.com/ovter?Redirect=Log&logNo=136025187
안드로이드 EditText focus이동
[출처] 안드로이드 EditText focus이동|작성자 쿠우ㅇㅇ
안드로이드 EditText 포커스의 이동은 기본적으로 아래이다.(android:singleLine 적용시)
위와 같이 위 아래로 배치 되었을 때 키보드의 다음을 누르면 포커스가 아래에 있는 EditText로 간다.
이 때는 문제가 없지만 아래와 같이 EditText가 배치 되었을 때는 이야기가 다르다.
기본적으로 포커스가 아래로만 이동하기 때문에 포커스를 왼쪽이나 오른쪽 위로 가게 할수 없다.
이럴때 유용한것이 setNextFocusDownId 와 android:nextFocusDown 이다.
setNextFocusDownId는 .java(소스)단에서 android:nextFocusDown은 XML단에서 함수다.
소스단에서 쓰는 방법은 다음과 같다.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.focus_main);
EditText edt1 = (EditText)findViewById(R.id.edt1);
edt1.setNextFocusDownId(R.id.edt2);
EditText edt2 = (EditText)findViewById(R.id.edt2);
edt2.setNextFocusDownId(R.id.edt3);
EditText edt3 = (EditText)findViewById(R.id.edt3);
edt3.setNextFocusDownId(R.id.edt4);
}
XML단에서 쓰는 방법은 다음과 같다.
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/edt1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true" />
<EditText
android:id="@+id/edt2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true"
android:nextFocusDown="@id/edt1" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/edt3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true"
android:nextFocusDown="@id/edt2" />
<EditText
android:id="@+id/edt4"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true"
android:nextFocusDown="@id/edt3" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
*setNextFocusDownId와 android:nextFocusDown 이외에도
setNextFocusLeftId android:nextFocusLeft
setNextFocusRightId android:nextFocusRight
setNextFocusUpId android:nextFocusUp
이란 옵션들이 있지만 Down제외한 다른것들은 동작하지 않았다.
왜지?;;;
=================================
=================================
=================================
'스마트기기개발관련 > 안드로이드 개발' 카테고리의 다른 글
안드로이드 flash 플래시 플레이어 apk 다운로드 관련 (0) | 2014.02.18 |
---|---|
안드로이드로 android sound 사운드 가 디바이스에 이상하게 들리거나 짤릴때게 들릴 때 관련 (0) | 2014.01.18 |
안드로이드 Andorid Viewpager PagerAdapter 페이지 넘기기 사용 하기 관련 (0) | 2013.08.20 |
[안드로이드] android res/raw 에서 파일 읽기쓰기 관련 (2) | 2013.08.19 |
안드로이드 URL(https://play.google.com 이용)로 데이터 확인 해서 업데이트 버전 체크 최신버전 관리 관련 (6) | 2013.07.31 |