1

テキストビューにテキストを表示する必要があります。テキストの一部をクリック可能にし、残りのテキストを通常のテキストにしたいだけです。

これが私のコードです:

TextView mTextView = (TextView) findViewById(R.id.txt);
String mText = "some text.Link to click.Some more text";
SpannableString sb = new SpannableString(mText);
sb.setSpan(new ClickableSpan() {
    @Override
    public void onClick(View widget) {
        Intent in=new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.twitter.com/"));
        startActivity(in);
    }
},  mText.indexOf("Link"),mText.indexOf("Link") + 13,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

mTextView.setText(sb);
mTextView.setMovementMethod(LinkMovementMethod.getInstance());
4

2 に答える 2

3

完全な URL を TextView に入れる場合は、android:autoLink="web"このプロセスを大幅に簡素化するために使用できます。

詳細については、TextView のドキュメントを参照してください。

もう 1 つのオプションはHtml オブジェクトです。具体的には、fromHtml()私が思う方法は、あなたが望むものを達成できると思います. 次のようなことができるはずです。

mTextView.setText(Html.fromHtml("blah blah <a href=\"http://some.site.com\">some text to be linkified</a> blah blah"));
于 2012-12-02T02:37:45.847 に答える
0

linkify次のオプションを使用することもできます。http: //android-developers.blogspot.com/2008/03/linkify-your-text.html- この場合、文字列を動的に作成し、その一部のみを作成できます。クリック可能にします。

私はその属性について聞いたことがありませんでしたautoLink-かっこいいです。

元の質問に近い可能性のある別のオプション-2つの異なるTextViewを並べて作成できます(間隔が奇数の場合はlayout_marginRight="-8" 、負のオフセットを使用して、間隔を完全にするために少し調整する必要があります)。次に、クリック可能にしたいTextViewのみにautoLink属性を適用できます。

于 2012-12-02T02:52:18.603 に答える