我想让textview的子字符串可点击,以便它将开始下一个活动。 我想在我的TextView中点击“...更多”来打开新闻的详细描述,有没有解决方案?如何将onclicklistener放在Textview上的子字符串
TextView description = (TextView) vi.findViewById(R.id.detail);
我想设置onclicklistener
特定的词TextView
(这里描述)。
我想让textview的子字符串可点击,以便它将开始下一个活动。 我想在我的TextView中点击“...更多”来打开新闻的详细描述,有没有解决方案?如何将onclicklistener放在Textview上的子字符串
TextView description = (TextView) vi.findViewById(R.id.detail);
我想设置onclicklistener
特定的词TextView
(这里描述)。
试试这个代码
public class YourActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
((TextView) findViewById(R.id.textView)).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Do your stuff
}
});
}
@Override
public void onPause() {
super.onPause();
}
@Override
protected void onResume() {
super.onResume();
}
}
这是你的布局
评论后<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:text="Do you want to see" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toEndOf="@+id/textView2"
android:text="...more?" />
</RelativeLayout>
编辑
所以,你必须使用SpannableString类和ClickableSpan,像这样
SpannableString string = new SpannableString("YourStringHere");
ClickableSpan clickHandler = new ClickableSpan() {
@Override
public void onClick(View v) {
//do your stuff here
}
@Override
public void updateDrawState(TextPaint tp) {
super.updateDrawState(tp);
tp.setUnderlineText(false);
}
};
//x and y are the start and end of the clickable substring
string.setSpan(clickHandler, x, y, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
TextView tv = (TextView) findViewById(R.id.your_text_view);
tv.setText(string);
tv.setMovementMethod(LinkMovementMethod.getInstance());
tv.textView.setHighlightColor(Color.TRANSPARENT);
我希望这有助于! ;-)
你不明白我在说什么..我不想把listenser放在textview上,我在试着将听众放置在textView中的特定单词 –
你不给我们很多工作的证明,但仍,以下应该可以帮助您:
description.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(this, myActivity.class);
startActivity(intent);
}
});
而且不要忘记在你的TextView的XML设置:
android:clickable="true"
编辑:我编辑过,所以我的代码现在填写你的代码。
你不明白我在说什么..我不希望将listenser放在textview上,我正在尝试的是将听众放在textView中的特定单词上 –
然后你需要做的是2或3如果你需要它包装)不同TextViews,一个onclicklistener设置在他身上,其他(s)只是放在一边。这完全是关于你的XML中的小布局修改。 – Amesys
但我不知道如何追加textView一个接一个......两个textview可以安排在垂直或水平...我试过这个逻辑,但不能得到解决方案 –
你在找什么似乎是ClickableSpan你可以在你的文本视图中使用不同格式的多个跨度,并且只有一个带有点击回调的跨度。
到目前为止您尝试了什么? –
看看这个答案[Spannable text](http://stackoverflow.com/a/10697453/4804264) –