7

TextView のテキストの最後に点滅カーソルを表示したかったのです。

android:cursorVisible="true"は TextView で試してみましたが、うまくいきません。

私が試しtext.setCursorVisible(true);てもうまくいきません。

<TextView
    android:id="@+id/text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:cursorVisible="true"
    android:textCursorDrawable="@null"  />

誰もそれに対する解決策を知っていますか?

4

4 に答える 4

6

まず、入力を受け取るEditText代わりにを使用する必要がありTextViewます。それでもカーソルが点滅しない場合は、 android:cursorVisible="true"属性を に設定xml fileすると、カーソルが点滅するはずです。カーソルが編集テキストに表示されない場合、それがカーソルの点滅が見えない理由でもあります。設定しandroid:textCursorDrawable="@null"ます。これで問題が解決するはずです

<EditText
   android:id="@+id/editext1"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:textCursorDrawable="@null"
   android:cursorVisible="true">

</EditText>

アクティビティ クラスに、このコードも追加します。

EditText input = (EditText)findViewById(R.id.edittext1);
input.setSelection(input.getText().length());
于 2013-08-27T06:20:48.643 に答える
2

これには解決策があります。

端末アプリを作成しているときにこれを行う必要がありrunnable、最後に単純なカーソルを置いて点滅させました。

3 つのクラス変数を作成しました。

private boolean displayCursor;
private boolean cursorOn;
private String terminalText;

private TextView terminal; // The TextView Object

terminalText表示されるテキストを追跡します。

runnable初めて実行するクラス メソッドを作成しました

private void runCursorThread() {
    Runnable runnable = new Runnable() {
        public void run() {
            if (displayCursor) {
                if (cursorOn) {
                    terminal.setText(terminalText);
                } else {
                    terminal.setText(terminalText + '_');
                }
                cursorOn = !cursorOn;
            }
            terminal.postDelayed(this, 400);
        }
    };
    runnable.run();
}

そして、変数を開始して呼び出しrunCursorThread()ましたonCreate()

    cursorOn = false;
    displayCursor = true;
    runCursorThread();
于 2015-11-07T14:11:00.223 に答える
1

最後に、@ Chintan Rathodのアドバイスに従って、EditText を使用してこれを修正しました。

<EditText
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"/> //reference to @Chintan Rathod.

コード

EditText text=(EditText) findViewById(R.id.text);
text.setText("hello");
text.setSelection(text.getText().length()); // reference to @Umer Farooq code.
于 2013-08-27T07:14:13.977 に答える
1

に行くべきだと思いますEditText。背景を設定してTextView、以下のコードのように見せることができます。

ステップ1

<EditText
    android:id="@+id/edtText"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/transparent" >
</EditText>

ステップ2

EditText edt = (EditText) findViewById(R.id.edtText);
edt.setSelection(edt.getText().length());

出力

ここに画像の説明を入力

于 2013-08-27T06:23:22.170 に答える