Android 에 서 는 TextView 에 여러 개의 클릭 가능 한 텍스트 를 추가 합 니 다.
많은 경우 에 우 리 는 소 셜 네트워크 서 비 스 를 사용 하 는 과정 에서 많 고 적 게 는 다른 사람의 댓 글 에 칭찬 을 할 수 있다.다음 그림 과 같다.
사용자 페이지 에 표 시 된 것 은 좋아요 만 누 른 사용자 의 이름 입 니 다.이 이름 을 누 르 면 이 사용자 의 홈 페이지 에 들 어 갈 수 있 습 니 다.다음은 비슷 한 효 과 를 실현 하 겠 습 니 다.
구체 적 인 코드 는 다음 과 같다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView mTextView = (TextView) rootView.findViewById(R.id.like_tv);
// html,
StringBuilder sbBuilder = new StringBuilder();
for (int i = 0; i < 10; i++) {
sbBuilder.append("username-" + i + "、");
}
String likeUsers = sbBuilder.substring(0, sbBuilder.lastIndexOf("、")).toString();
mTextView.setMovementMethod(LinkMovementMethod.getInstance());
mTextView.setText(addClickablePart(likeUsers), BufferType.SPANNABLE);
}
/**
* @param str
* @return
*/
private SpannableStringBuilder addClickablePart(String str) {
//
ImageSpan span = new ImageSpan(getActivity(), R.drawable.umeng_comm_like);
SpannableString spanStr = new SpannableString("p.");
spanStr.setSpan(span, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
SpannableStringBuilder ssb = new SpannableStringBuilder(spanStr);
ssb.append(str) ;
String[] likeUsers = str.split("、");
if (likeUsers.length > 0) {
//
for (int i = 0; i < likeUsers.length; i++) {
final String name = likeUsers[i];
final int start = str.indexOf(name) + spanStr.length();
ssb.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
Toast.makeText(getView().getContext(), name,
Toast.LENGTH_SHORT).show();
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
// ds.setColor(Color.RED); //
//
ds.setUnderlineText(false);
}
}, start, start + name.length(), 0);
}
}
return ssb.append(" "
+ likeUsers.length + " .");
} // end of addClickablePart
다음 그림 과 같이 실행 효과:본 고 에서 말 한 것 이 여러분 의 안 드 로 이 드 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.