我想讓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) –