TextViewを1つだけ使用すれば、ClickableSpan
を使用して、指定したTextViewに複数のClickableSpanを追加することもできます。これは、EditTextのように動作する特定のスポットで、複数行TextViewの効果をもたらします。
このタイプのオブジェクトがLinkMovementMethodの 移動方法とのTextViewのテキストに接続されている場合、テキストの影響を受けるスパンが 選択することができます。クリックされると、onClick(View)メソッドが呼び出されます。
SpannableString madLibString = new SpannableString("Our school cafeteria has really adjective food");
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View textView) {
Toast.makeText(getApplicationContext(), "The text 'adjective' has been clicked. Do something.",
Toast.LENGTH_SHORT).show();
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
// NOTE: set styling here to give UI feedback that this is text that can be clicked and edited.
ds.setColor(getResources().getColor(android.R.color.holo_red_dark));
}
};
madLibString.setSpan(clickableSpan, 32, 41, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(madLibString);
textView.setMovementMethod(LinkMovementMethod.getInstance());
私はあなたの代わりに、内部 –
ソートの間の平均と考えています。私は一種の内部を意味する - 全体がTextView(自動ラップされているので)のように、その一部はEditTextです。 SpannableStringsなどを使用してテキストの一部をクリック可能にする方法と似ています。 – user6313011
'android:singleline =" true "'を追加して、EditTextが高さを伸ばさないようにし、 'android:ems ="最大文字 "で最大文字を追加するか、またはdpで幅を設定します –