我有一个带有字符串的复选框,上面写着“我已阅读并理解条款和条件”。现在我想将“条款和条件”一词添加到一个链接中,该链接打开一个警报对话框,可以在其中阅读条款和条件。没什么特别的。
我在想一些事情:
<string name="cont_agree">I have read and understood the <a ref="open alertdialog">terms and conditions.</a></string>
有可能吗,我应该在现在说“打开警报对话框”的地方使用什么?如果不能这样做,我该怎么办?
加法: 要打开一个网址,您将使用以下代码:
<string name="cont_agree"><a ref="http://www.stackoverflow.com">Stackoverflow</a></string>
但是如何从字符串中打开警报对话框,或者说另一个屏幕?我见过执行此操作的应用程序,因此这是可能的,当然,但是如何?
编辑:这是我用于 SpannableStringBuilder 的代码:
SpannableStringBuilder text = new SpannableStringBuilder();
text.append(getString(R.string.before));
//Now create a ClickableSpan
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View view) {
d.show(); //Here dialog will be displayed
}
};
//Now append the TOS string
text.append(getString(R.string.popup));
//Declare that the "TOS" string is a clickableSpan
text.setSpan(clickableSpan, getString(R.string.before).length(),getString(R.string.before).length()+getString(R.string.popup).length(), 0); //Check on API setSpan method
((CheckBox)findViewById(yourview)).setMovementMethod(LinkMovementMethod.getInstance());
((CheckBox)findViewById(yourview)).setText(text, BufferType.SPANNABLE);
我仍然在第一行“text.append”得到一些标记。此行有多个标记:
- 缺少该方法的返回类型
- 令牌“)”上的语法错误,{ 应在此令牌之后
- R.string.before 无法解析为类型
- 令牌“)”上的语法错误,无效的 VariableDeclaratorId
- 令牌“附加”上的语法错误,此令牌后应有标识符