안녕하세요.

soft Keyboard 사용중 문제가 발생하여 질문드립니다.
아래 체크된 형식을 넣으면 에러가 발생합니다.
Keyboard의 cursor 위치와 TextView의 cursor위치가 틀려서 발생하는 것 같습니다.
고수님들의 많은 조언 부탁드립니다.

/** layout :TextView **/
 <TextView
            android:id="@+id/textview"
            android:layout_width="304px"
            android:layout_height="40px"
            android:layout_x="30px"
            android:layout_y="65px"
            android:maxLines="1"
            android:scrollHorizontally="true"
            android:textSize="34px"
            android:freezesText="true"
            android:focusable="true"
            android:focusableInTouchMode="true"           
            android:textColor="#ffffff"
            android:gravity="right"
            android:inputType="textEmailAddress"
            android:imeOptions="actionSend|flagNoExtractUi">
 </TextView> 


/** soft keyboard 실행 **/
   TextView textview = (TextView)findViewById(R.id.textview);

   textview.setText(""); <<========== 이부분을 넣고 keyboard를 실행 후 글자를 입력하면 IndexOutBoundsException에러가 발생합니다.

   InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
   imm.showSoftInput(textview, InputMethodManager.SHOW_FORCED);

/**Logcat 내용**/
12-10 08:47:16.709: ERROR/AndroidRuntime(2514): java.lang.IndexOutOfBoundsException: replace (-1 ... -1) starts before 0
12-10 08:47:16.709: ERROR/AndroidRuntime(2514):     at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:949)
12-10 08:47:16.709: ERROR/AndroidRuntime(2514):     at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:274)
12-10 08:47:16.709: ERROR/AndroidRuntime(2514):     at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:269)
12-10 08:47:16.709: ERROR/AndroidRuntime(2514):     at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:432)
12-10 08:47:16.709: ERROR/AndroidRuntime(2514):     at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:409)
12-10 08:47:16.709: ERROR/AndroidRuntime(2514):     at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:28)
12-10 08:47:16.709: ERROR/AndroidRuntime(2514):     at android.view.inputmethod.BaseInputConnection.replaceText(BaseInputConnection.java:565)
12-10 08:47:16.709: ERROR/AndroidRuntime(2514):     at android.view.inputmethod.BaseInputConnection.setComposingText(BaseInputConnection.java:366)
12-10 08:47:16.709: ERROR/AndroidRuntime(2514):     at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:276)
12-10 08:47:16.709: ERROR/AndroidRuntime(2514):     at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:57)
12-10 08:47:16.709: ERROR/AndroidRuntime(2514):     at android.os.Handler.dispatchMessage(Handler.java:99)
12-10 08:47:16.709: ERROR/AndroidRuntime(2514):     at android.os.Looper.loop(Looper.java:123)
12-10 08:47:16.709: ERROR/AndroidRuntime(2514):     at android.app.ActivityThread.main(ActivityThread.java:3948)
12-10 08:47:16.709: ERROR/AndroidRuntime(2514):     at java.lang.reflect.Method.invokeNative(Native Method)
12-10 08:47:16.709: ERROR/AndroidRuntime(2514):     at java.lang.reflect.Method.invoke(Method.java:521)
12-10 08:47:16.709: ERROR/AndroidRuntime(2514):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)
12-10 08:47:16.709: ERROR/AndroidRuntime(2514):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
12-10 08:47:16.709: ERROR/AndroidRuntime(2514):     at dalvik.system.NativeStart.main(Native Method)
12-10 08:47:16.789: WARN/AudioFlinger(554): write blocked for 49 msecs