我有一个文本视图,显示一些HTML并正确显示。如果HTML中包含仅包含网址文字的链接,我可以点击链接将其打开,但如果网址归因于其他文字,请执行以下操作:
<a href="https://cdn.kyfb.com/KYFB/assets/File/Federation/Across%20Kentucky/2017/January/AK_Promo_Jan_23_2017_mixdown.mp3">Listen here</a></strong></p>
&#34;在这里听#34;在我的文字视图中看起来像是一个可点击的链接,但它无法被选中。
import android.content.Context;
import android.content.Intent;
import android.graphics.Typeface;
import android.os.Bundle;
import android.text.Html;
import android.widget.TextView;
import android.text.method.LinkMovementMethod;
public class BenefitDetailActivity extends BaseActivity {
static Context context;
TextView detailTextView;
String descriptionText;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_benefit_details);
context = getApplicationContext();
Intent detailIntent = getIntent();
descriptionText = detailIntent.getStringExtra("description");
detailTextView = (TextView)findViewById(R.id.benefitText);
Typeface kfb = Typeface.createFromAsset(getAssets(), "FranklinGothicStd-ExtraCond.otf");
detailTextView.setTypeface(kfb);
detailTextView.setTextSize(20);
System.out.println("DESCRIPTION: " + descriptionText);
detailTextView.setText(Html.fromHtml(descriptionText));
}
}
布局:
<TextView
android:id="@+id/benefitText"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="20dp"
android:paddingBottom="20dp"
android:background="@color/transparent"
android:textColor="@color/white_text"
android:autoLink="all" />
根据其他人的建议,我已添加
detailTextView.setMovementMethod (LinkMovementMethod.getInstance());
和
android:linksClickable="true"
有了这个问题,当我添加setMovementMethod()时,链接的文本(在这里监听)不再显示为链接,仍然无法选择。
答案 0 :(得分:2)
将以下属性添加到布局文件
中的textview<TextView
android:id="@+id/benefitText"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="20dp"
android:paddingBottom="20dp"
android:background="@color/transparent"
android:textColor="@color/white_text"
android:autoLink="all"
android:linksClickable="true"
/>
并在setMovementMethod上添加以下行。
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
detailTextView.setText(Html.fromHtml(descriptionText,Html.FROM_HTML_MODE_LEGACY));
} else {
detailTextView.setText(Html.fromHtml(descriptionText));
}
detailTextView.setMovementMethod(LinkMovementMethod.getInstance());
答案 1 :(得分:1)
我通过添加detailTextView.setMovementMethod(LinkMovementMethod.getInstance());
修复此问题
和android:linksClickable="true"
。我还必须删除android:autoLink="all"