我有文本视图,我想将文本设置为指向网站的链接,但是 问题是我无法点击:
Grades = (TextView) findViewById(R.id.textView9);
Grades.setText(Html.fromHtml(course.getString(TAG_Grade)));
Grades.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
WebView webView; webView.setWebViewClient(new WebViewClient()
{
}webView.loadUrl(course.getString(TAG_Grade)); });
和xml:
<TextView
android:id="@+id/textView9"
android:layout_marginLeft="110dp"
android:layout_marginTop="365dp"
android:textColor="#000"
android:textSize="14sp"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:autoLink="web"
android:onClick="onClick"
/>
知道course.getString(TAG_Grade)
将从db获取url但它不起作用
有什么问题?
答案 0 :(得分:3)
使用此android:clickable="true"
<TextView
android:id="@+id/textView9"
android:layout_marginLeft="110dp"
android:layout_marginTop="365dp"
android:textColor="#000"
android:textSize="14sp"
android:clickable="true"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:autoLink="web"
android:onClick="onClick"
/>
答案 1 :(得分:3)
在单击视图后,您正尝试将其链接到,从onClick中删除了Linkify。
你走错了路。
试试这个:
String userCanSeeThis = "Your Website Name";
String url = course.getString(TAG_Grade);
TextView grades = (TextView) findViewById(R.id.textView9);
grades.setText(userCanSeeThis);
addLinks(Grades, userCanSeeThis, url);
使用此辅助方法:
/**
* @param textView
* textView who's text you want to change
* @param linkThis
* a regex of what text to turn into a link
* @param toThis
* the url you want to send them to
*/
public static void addLinks(TextView textView, String linkThis, String toThis) {
Pattern pattern = Pattern.compile(linkThis);
String scheme = toThis;
android.text.util.Linkify.addLinks(textView, pattern, scheme, new MatchFilter() {
@Override
public boolean acceptMatch(CharSequence s, int start, int end) {
return true;
}
}, new TransformFilter() {
@Override
public String transformUrl(Matcher match, String url) {
return "";
}
});
}
另外,如果您使用onClickListener
在代码中设置grades.setOnClickListener
,那么您的XML中不需要android:onClick=""
答案 2 :(得分:2)
而不是使用Linkify
我更喜欢以下行:
Html.fromHtml(course.getString(TAG_Grade));
答案 3 :(得分:1)
TextView myWebSite = new TextView(this);
myWebSite .setText("http://www.google.com/");
Linkify.addLinks(myWebSite , Linkify.WEB_URLS);
答案 4 :(得分:1)
您已收到足够的关于Linkify的答案,但您的代码中还有一个超级错误抓取:
您误将他的android:onClick
属性误认为onClick
的方法View.onClickListener
:
属性android:onClick
的工作原理如下:
视图所在的View视图上下文中的方法名称 点击。此名称必须与采用的公共方法相对应 恰好是View类型的一个参数。例如,如果您指定 android:onClick =“sayHello”,你必须声明一个公共空白 sayHello(View v)您的上下文方法(通常是您的Activity)。
至于onClick
提供的View.onClickListener
- 方法 - 接口:
view.setOnClickListener(...)
注册此视图时要调用的回调 点击。如果此视图无法点击,则会变为可点击。
这将允许您覆盖该功能:
public abstract void onClick (View v)
在单击视图时调用。