我想要做的是在AlertDialog显示的消息中有一个可点击的超链接。我的目标是弹出一个AlertDialog,询问用户是否接受或拒绝类似以下的条款和条件:
点击" Google Play服务条款"超链接,我想开始一个新的活动。我在这里看了一下,我可以找到如何在网站中添加超链接以及在TextView中添加文本的超链接,但我无法为AlertDialog执行此操作。我正在寻找一种方法来设置Dialog以链接到Activity的超链接文本,或者获取显示消息的TextView(我可以自己操作TextView)。
我已经尝试(TextView) getDialog().findViewById(android.R.id.message)
来获取消息TextView,但这会返回null。
非常感谢任何帮助!
答案 0 :(得分:2)
使用AlertDialog.setView()在消息区域中显示包含超链接TextView的自定义布局。
E.g。创建一个包含带有id = hyperlink_text
的TextView的hyperlink_layout.xml它只需要包含AlertDialog的消息区域中显示的内容,您不需要按钮/标题等。
创建类似这样的AlertDialog(来自Activity):
LayoutInflater inflater = getLayoutInflater();
View dialogView = inflater.inflate(R.layout.hyperlink_layout, null);
// get the text view from the view:
TextView hyperlinkText = (TextView)dialogView.findViewById(R.id.hyperlink_text);
// format/set it up how you like...
// handle the click on the hyperlink:
hyperlinkText.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// handle the click, launch the new Activity etc
}
});
// create the alert dialog
new AlertDialog.Builder(this)
.setView(dialogView)
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// handle OK
}
})
.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// handle Cancel
}
})
.show();
答案 1 :(得分:0)
最好将此对话框创建为具有透明背景的活动。