如何将 link 添加到 Switch 小部件的文本中?
How can I add a link to the text of a Switch widget?
我正在尝试进行 "Accept terms and conditions"
切换。我能够将 link 添加到开关中,但问题是 link 也在开关按钮上,所以每次我按下按钮接受条款和条件时,它都会将我带到网页.
我希望只有被选为 link 的文本才是 link。
这是我现在的代码:
在 strings.xml:
<string name="terms">Accept<a href="http://www.google.es">terms & conditions</a>.</string>
在 register.xml:
<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/terms"
android:id="@+id/registerSwitch"/>
在 Register.class:
Switch terms = (Switch) findViewById(R.id.registerSwitch);
terms.setMovementMethod(LinkMovementMethod.getInstance());
我怎样才能让文本 "terms & conditions"
成为 link 而不是切换按钮?
尝试添加android:linksClickable
<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/terms"
android:linksClickable="true"
android:id="@+id/registerSwitch"/>
试试下面的代码
<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/swtch"
android:text="@string/terms"
android:linksClickable="true"
android:textIsSelectable="true"
android:autoLink="web"/>
在strings.xml
<string name="terms">Accept <a href=""http://www.google.es">"http://www.google.es</a>terms & conditions</string>
最后在 activity
Switch terms = (Switch) findViewById(R.id.registerSwitch);
terms.setMovementMethod(LinkMovementMethod.getInstance());
为什么不将文本单独显示为 TextView 和 TextView 上的 setOnClickListener 以打开您的 link。有些是这样的:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Switch
android:id="@+id/your_switch"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/terms_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Accept terms & conditions" />
</LinearLayout>
在Activity
TextView termsText = (TextView)findViewById(R.id.terms_text);
termsText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.yoururl.com"));
startActivity(browserIntent);
}
});
我正在尝试进行 "Accept terms and conditions"
切换。我能够将 link 添加到开关中,但问题是 link 也在开关按钮上,所以每次我按下按钮接受条款和条件时,它都会将我带到网页.
我希望只有被选为 link 的文本才是 link。
这是我现在的代码:
在 strings.xml:
<string name="terms">Accept<a href="http://www.google.es">terms & conditions</a>.</string>
在 register.xml:
<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/terms"
android:id="@+id/registerSwitch"/>
在 Register.class:
Switch terms = (Switch) findViewById(R.id.registerSwitch);
terms.setMovementMethod(LinkMovementMethod.getInstance());
我怎样才能让文本 "terms & conditions"
成为 link 而不是切换按钮?
尝试添加android:linksClickable
<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/terms"
android:linksClickable="true"
android:id="@+id/registerSwitch"/>
试试下面的代码
<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/swtch"
android:text="@string/terms"
android:linksClickable="true"
android:textIsSelectable="true"
android:autoLink="web"/>
在strings.xml
<string name="terms">Accept <a href=""http://www.google.es">"http://www.google.es</a>terms & conditions</string>
最后在 activity
Switch terms = (Switch) findViewById(R.id.registerSwitch);
terms.setMovementMethod(LinkMovementMethod.getInstance());
为什么不将文本单独显示为 TextView 和 TextView 上的 setOnClickListener 以打开您的 link。有些是这样的:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Switch
android:id="@+id/your_switch"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/terms_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Accept terms & conditions" />
</LinearLayout>
在Activity
TextView termsText = (TextView)findViewById(R.id.terms_text);
termsText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.yoururl.com"));
startActivity(browserIntent);
}
});