6

手始めに、私はAndroid/Java開発に飛び込んでいるC++/ Qt開発者なので、私が何かを知っていると思い込まないでください。:)それで、私はScrollViewに含まれているTextViewを持つアプリケーションを持っています。TextViewに含まれるテキストは、私のWebサーバーアプリケーションからのWebクエリの結果です。クエリによっては、テキストがかなり長くなる場合があります。ユーザーが検索するテキスト文字列を入力するテキストに検索機能を実装したいと思います。テキスト文字列が見つかった場合、ScrollViewはTextViewをスクロールして、入力されたサブ文字列が表示されるようにし、テキストを強調表示します。テキストの部分文字列を強調表示する方法、TextViewの特定の行番号までスクロールするようにScrollViewに指示する方法を知っていると思いますが、私の人生では、サブストリングが表示されることを保証するためにスクロールする行番号を見つける方法を理解します。つまり、テキストビューにクエリを実行して、サブストリングが最初に出現する行番号を取得したいと思います。最終的には、サブストリングの次のオカレンスに移動するfindnextも実装したいと思います。Firefoxの検索機能のようなものです。どんな援助も大歓迎です。前もって感謝します。

4

1 に答える 1

9

String.indexOf()などを使用して、テキスト内の部分文字列の位置を自分で見つける必要があります。その位置がわかったら、Layout.getLineForOffset()関数を使用して、TextView で正しい行を検索できます。

int offset=myString.indexOf("search string");
int line = myTextView.getLayout().getLineForOffset(offset);
于 2010-10-19T03:15:45.560 に答える