5

シンプルなシーザー暗号化アクティビティを書いています。画面上の 2 つの EditText、1 つの平文、1 つの暗号化。暗号化された EditText の例を次に示します。クリアテキストも同様です。

<EditText 
    android:layout_below="@id/Caesar_Label_CryptText"
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent"
    android:id="@+id/Caesar_Text_CryptText" 
    android:hint="Enter crypted text"
    android:maxLines="2" 
    android:lines="2" 
    android:minLines="2"
    android:inputType="text|textMultiLine|textVisiblePassword"
    android:scrollbars="vertical" 
    android:gravity="top" />

クリアテキストを入力すると、プログラムで暗号化してそのcrypto-EditTextを埋めるTextChangedListenerが実行されます。ここまでは順調ですね。

入力された cleartext が非常に長くなると、cleartext-EditText は入力に合わせてスクロールしますが、crypto-EditText はテキストの先頭にとどまります。crypto-EditText をスクロールして、コンテンツの最終行が常に表示されるようにしたいと思います。

できれば TextWatcher の onTextChanged()-Method から、どのように行うことができますか?

4

2 に答える 2

10

わかりました、見つけました。それはカーソルでした (EditText および TextViews では Selection と呼ばれます)。

これが私がそれを機能させる方法です:

ivClear    // assigned the EditText that has the input
ivCrypt    // assigned the target EditText, that I want to scroll
aText      // the input from ivClear, crypted

次に使用します。

    ivCrypt.setText(aText);                               // assign the Text
    ivCrypt.setSelection(ivClear.getSelectionStart());    // scroll

ふぅ、ついに :) Spannable の力を常に過小評価していました ;)

于 2010-02-14T08:39:05.693 に答える
0

基本クラス android.view.View には getScrollX()、getScrollY() および scrollTo() メソッドがあり、私は試していませんが、役立つかもしれません。

http://developer.android.com/reference/android/view/View.html#scrollTo(int , int)

于 2010-02-13T16:02:48.640 に答える