我在TextViews中使用android:autoLink="web"
将网址转换为可点击链接。这非常有效。由于链接是用户生成的,我想事先询问用户对话,是否真的想要打开这个链接。
我没有找到任何东西,有没有办法拦截该点击并显示一个对话框,然后再转发给典型的ACTION_VIEW
意图?
答案 0 :(得分:0)
尝试添加到TextView属性,例如:
<TextView
android:text="http://www.google.com"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:autoLink="web"
android:onClick="onUrlClick"
android:linksClickable="false"
android:clickable="true"
/>
然后覆盖onClick方法,如:
public void onUrlClick(final View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
TextView myTextView = (TextView)view;
String myUrl = String.valueOf(myTextView.getText());
Intent browse = new Intent( Intent.ACTION_VIEW , Uri.parse(myUrl) );
startActivity( browse );
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
它对我有用。 这只是一个例子,对于良好的实践,您应该将创建与onClick方法分开。