如何在显示的文本右侧获取初始光标位置

时间:2012-12-13 20:13:48

标签: android

这应该很简单,但是我已经在stackoverflow中尝试了十几个关于这个主题的事情,他们要么什么也不做或者崩溃。

我有一个以最后一个条目开头的edittext字段,比如“12”,我希望初始光标位于2的右边,它总是从1的左边开始。如果有的话如果是键,但键盘上只有一个后退键,用户必须在键入旧文本之前手动重新定位光标。有几个领域,他很可能想让大多数人独自离开。我想要的只是编辑第二个字段让他点击“下一个”“bs”,“bs”,“45”,“next”,“done”。这样他就不必完全定位光标了。

------------ UPDATE ----------------------

这是主文件

package com.example.test;
import android.os.Bundle;
import android.app.Activity;
import android.widget.EditText;


public class MainActivity extends Activity {
    static EditText edit;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        edit = (EditText) findViewById(R.id.edit);
        edit.setSelection(edit.getText().toString().length());
    }
}

这是xml

<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"
tools:context=".MainActivity" >

<EditText
    android:id="@+id/edit"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/textView2"
    android:layout_alignParentLeft="true"
    android:layout_marginBottom="60dp"
    android:text="12"
    android:nextFocusDown="@+id/textView4"
    android:inputType="number"
    android:ellipsize="end"
    android:gravity="right"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView
    android:id="@+id/textView3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/edit"
    android:layout_alignBottom="@+id/edit"
    android:layout_toRightOf="@+id/edit"
    android:text=":"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<EditText
    android:id="@+id/textView4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/textView3"
    android:layout_alignBottom="@+id/textView3"
    android:layout_toRightOf="@+id/textView3"
    android:text="00"
    android:inputType="number"
    android:textAppearance="?android:attr/textAppearanceLarge" />

1 个答案:

答案 0 :(得分:2)

setSelection()

中的每个EditText上使用onCreate()
edit.setSelection(edit.getText().toString().length());
edit2.setSelection(edit2.getText().toString().length());

光标仍将尊重用户的触摸手势,但轨迹球和其他移动方法将从光标右侧开始。