1

这应该很简单,但是我在 stackoverflow 中就该主题尝试了大约十几件事,它们要么什么都不做,要么崩溃。

我有一个以最后一个条目开头的edittext字段,例如“12”,我希望初始光标位于2的右侧,并且始终从1的左侧开始。如果有del就可以了键,但键盘上只有一个后退键,用户必须手动重新定位光标,然后再在旧文本上键入。有几个领域,他很可能想不理会其中的大部分。如果他只想编辑第二个字段让他点击“下一个”、“bs”、“bs”、“45”、“下一个”、“完成”,我想要什么。这样他就不用定位光标了。

- - - - - - 更新 - - - - - - - - - - -

这是主文件

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" />

4

1 回答 1

2

setSelection()在每个 EditText 上使用onCreate()

edit.setSelection(edit.getText().toString().length());
edit2.setSelection(edit2.getText().toString().length());

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

于 2012-12-13T20:31:34.753 回答