1

これは単純なはずですが、ここでトピックに関するスタックオーバーフローで約12のことを試しましたが、何もしないかクラッシュします。

「12」のように、最後のエントリで始まる edittext フィールドがあり、最初のカーソルを 2 の右側に配置し、常に 1 の左側から開始します。del があれば問題ありません。キーを押しますが、キーボードに戻るキーしかないため、ユーザーは古いテキストを上書きする前にカーソルを手動で再配置する必要があります。いくつかのフィールドがあり、彼はおそらくそれらのほとんどをそのままにしておきたいと考えています。彼が2番目のフィールドを編集して、「次へ」「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 に答える