I am using an Edit Text in my project.
The problem is that whenever I type anything into the text box, it shows up, but the cursor does not move from its starting position at all, regardless of how many characters I type. Also I am not able to move by clicking to any particular character in the text box.
My xml file for containing the edit text is like this
<EditText
android:id="@+id/xEt"
android:layout_width="fill_parent"
android:layout_height="295dp"
android:layout_alignParentLeft="true"
android:ems="10"
android:focusableInTouchMode="true"
android:focusable="true" >
The xml file is:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/xsubLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:keepScreenOn="true"
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true" >
</RelativeLayout>
<EditText
android:id="@+id/xEt"
android:layout_width="wrap_content"
android:layout_height="295dp"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:ems="10"
android:inputType="textMultiLine" >
<requestFocus />
</EditText>
</RelativeLayout>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:id="@+id/xK1"
android:layout_height="wrap_content" android:orientation="vertical"
android:visibility="gone">
<include android:id="@+id/xKeyBoard" layout="@layout/gf"></include>
<include android:id="@+id/xtop" layout="@layout/top"></include>
<include android:id="@+id/x11" layout="@layout/x1"></include>
<include android:id="@+id/x12" layout="@layout/x3"></include>
<include android:id="@+id/x13" layout="@layout/x4"></include>
<include android:id="@+id/x14" layout="@layout/x5"></include>
<include android:id="@+id/x15" layout="@layout/x6"></include>
<include android:id="@+id/x16" layout="@layout/x7"></include>
<include android:id="@+id/x17" layout="@layout/x8"></include>
<include android:id="@+id/x18" layout="@layout/x9"></include>
<include android:id="@+id/x19" layout="@layout/x10"></include>
<include android:id="@+id/x20" layout="@layout/x11"></include>
<include android:id="@+id/x22" layout="@layout/x13"></include>
<include android:id="@+id/x23" layout="@layout/x14"></include>
<include android:id="@+id/x24" layout="@layout/x15"></include>
<include android:id="@+id/x25" layout="@layout/x16"></include>
<include android:id="@+id/x26" layout="@layout/x17"></include>
<include android:id="@+id/x27" layout="@layout/x18"></include>
<include android:id="@+id/x28" layout="@layout/x19"></include>
</RelativeLayout>
</RelativeLayout>
There are a few ways you can achieve this. First, you can simply have it so that if the EditText block is empty, it is immediately repopulated with a "/" char. Alternatively, make it so that if the previous char is / , then prevent the user from deleting back.
Are you binding you view to a model? i.e. Do you have an MVVM setup?
If you do, make sure you do not have any cyclical update especially for a two-way binding i.e. if user types a character, you update your model which will in turn update the EditText control and repeat.
So depending on your Editext control properties, each time the model change updates it, it could have the cursor reset to the start position.
If this is the case, a simple equality check between the model value and the EditText text value before you update it from the model should fix the issue.
if (txtEdit.text != modelValue)
{
txtEdit.text = modelValue;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With