EditText 6

[안드로이드] EditText setText Exeception

에디트텍스트(EditText)를 사용하다가 아래와 같은 익셉션을 만난다면 무엇에 주의 해야 할까? E/InputEventReceiver: Exception dispatching input event.E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallbackE/MessageQueue-JNI: android.content.res.Resources$NotFoundException: String resource ID #0xE/MessageQueue-JNI: at android.content.res.Resources.getText(Resources.java:244) setText(int resId)는 리소스 아이디를 받는 타입이다. ..

[안드로이드] EditText 여러개 포커스, 커서 변경

안드로이드 EditText가 여러개 있거나, 다른 곳으로 포커스를 옮겨야 할 경우가 있다. 어떻게 해야 할까? 1. 현재 에디트텍스트의 커서를 지운다.setCursorVisible(false) 2. 다른 에디트텍스트나 아이템에 커서를 살린다. setCursorVisible(true) 3. 죽이고, 살리면 살아난 애는 깜빡일까? 그냥 자고 있다. 포커스를 요청 해야 한다. 4. 포커스 좀 주세요... mEditText.requestFocus(); 이러면 끝났나? 그럼 혼난다. 1. 왠만하면 setCursorVisible(false)를 쓰지 마라. 2. 다시 살려야 하고 복잡해진다. 3. 그리고 setForcusable, setForcusableInTouchMode 는 기본으로 True 4. editable..

[안드로이드] EditText 맨 뒤에 커서 위치 시키기 -java.lang.indexoutofboundsexception setspan ends beyond length

안드로이드 에디트 텍스트의 맨 뒤에 커서를 위치 시키는 방법을 알아 보자. 이게 기본이 아니라는 것이 그렇지만... 공부 하라는 선생님의 말씀이라는 것 같아서... 숙제를 해본다. 1. 길이의 맨 뒤에 붙여 보자 editText.setSelection(editText.length()); 2. 선생님을 만나라java.lang.indexoutofboundsexception setspan ends beyond length 3. 선생님의 충고를 들어라. Editable editable = mFrontEditText.getText(); Selection.setSelection(editable, editable.length()); 4. 짐싸라. 5. 하산 하라. 6. 뒤통수 맞고 다시 책상에 앉아라.

[안드로이드] TextView 글자 흐르기 marquee 효과

글자가 흘러간다? HTML에서 많이 봐왔던 흘러가는 글자를 안드로이드에서도 할 수 있다? 당연히 코드 친구들인데 안 될리가 없다. 이 친구들끼리 흘러가는 세월의 이름은 marquee로 통한다. 간단히.... XML에서 아래와 같이 하고, android:ellipsize="marquee" android:focusable="true" android:marqueeRepeatLimit="marquee_forever" android:singleLine="true" marquee_forever 는 기본 값이 -1이다. 즉, 몇 번 반복 할 것인가 라고 유추 할 수 있다.1을 넣으면 1번만 100을 넣으면 100 번 흐른 뒤 멈춘다. 코드에서 textView.setSelected(true)를 해주면 된다. 단, 주의..

안드로이드 Edittext 엔터 인식 및 event null 처리

안드로이드 에디터 텍스트(edit text)에서 엔터키나 Done키를 받기 위해서는 아래와 같이 리스너(setOnEditorActionListener) 를 등록 하면 된다. @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if ( actionId == EditorInfo.IME_ACTION_DONE || event.getKeyCode() == KeyEvent.KEYCODE_ENTER){ 그런데 여기서 문제가 있다. event가 null 이 들어 오는 것이다. 죽음이란 거다. 이럴 경우 null 처리(event != null &&)를 해주면 그만이겠거니 하고 생각 하겠지만... 그렇다면 엔터에 대한 반응 ..

EditeText 키보드 내리고 포커스 내보내기

EditText를 여러개 사용하다보면 포커스 때문에 불편한 점이 생길 때가 많다. 이럴 때는 필요할 때만 포커스를 넣고 그외에는 포커스를 기본적으로 죽여야 한다. 그렇지 않으면 시도 때도 없이 키보드가 올라가고 사라지지 않기 때문이다. 키보드 강제로 내리기 private void hideKeyBoard(){ InputMethodManager iM= (InputMethodManager)mContext.getSystemService(Context.INPUT_METHOD_SERVICE); iM.hideSoftInputFromWindow(mEditText.getWindowToken(), 0); } 키보드의 포커스를 기본으로 다른 곳으로 보내기아래 코드를 다른 레이아웃등에 넣어 주면 수동으로 포커스를 줄 수 있다..