onClick方法被调用两次,因此当从SecondActivity.class它返回时将再次重新加载它。我有一个可点击的TextView命名。postTextViewSee More
在哪里:
R.string.readMore = See More。
这是我使用过的代码。
String mTitleBody = Html.fromHtml(postBodyText).toString().substring(0, 150).trim();
mTitleBody = mTitleBody.concat("..." + mContext.getResources().getString(R.string.readMore)).replaceAll("<img.+?>|<IMG.+?>", "").replaceAll("\n", "<br/>");
int index1 = Html.fromHtml(mTitleBody).toString().trim().length() -
mContext.getResources().getString(R.string.readMore).length();
int index2 = Html.fromHtml(mTitleBody).toString().trim().length();
postTextView.setTextIsSelectable(true);
postTextView.setMovementMethod(LinkMovementMethod.getInstance());
postTextView.setText(Html.fromHtml(mTitleBody), TextView.BufferType.SPANNABLE);
Spannable mySpannable = (Spannable) postTextView.getText();
ClickableSpan myClickableSpan = new ClickableSpan() {
@Override
public void onClick(View view) {
Log.d("FirstClass", "onClick");
Intent intent = new Intent(mContext, SecondActivity.class);
(mContext).startActivity(intent);
((Activity) mContext).overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setUnderlineText(false);
ds.setColor(ContextCompat.getColor(mContext, R.color.body_text_3));
}
};
mySpannable.setSpan(myClickableSpan, index1, index2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
Run Code Online (Sandbox Code Playgroud)
任何人都可以在这里帮助我,提前谢谢。
小智 6
如果您在 TextView 中使用自动链接属性,则需要在设置移动方法后将 TextView 设置为不可聚焦。
为此,请在之后添加以下行postTextView.setMovementMethod(LinkMovementMethod.getInstance());:
postTextView.setFocusable(false);
Run Code Online (Sandbox Code Playgroud)
Android setMovementMethod 文档的第二段中有解释:
设置用于处理此 TextView 的箭头键移动的 MovementMethod。该值可以为空,以禁止使用箭头键移动光标或滚动视图。
请注意,如果您希望具有关键侦听器或移动方法的 TextView 不具有焦点,或者希望不具有关键侦听器或移动方法的 TextView 具有焦点,则必须在调用此方法后再次调用 View.setFocusable(boolean)使聚焦能力恢复到您想要的方式。
| 归档时间: |
|
| 查看次数: |
1003 次 |
| 最近记录: |