如何添加指向Switch小部件文本的链接?

时间:2016-08-04 12:07:31

标签: android android-switch

我正在尝试进行"Accept terms and conditions"切换。我能够将链接添加到交换机中,但问题是链接也在交换机按钮上,因此每次按下按钮接受条款和条件,它都会将我带到网页。

我希望只有被选为链接的文本才是链接。

以下是我现在的代码:

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"成为链接,而不是切换按钮?

3 个答案:

答案 0 :(得分:1)

为什么不在TextView上单独显示文本作为TextView和setOnClickListener来打开链接。有些像这样:

window.onclick = function(event) {
    // Taken from the first code block; Handles the closing of the dropdown
    if (!event.target.matches('.dropbtn')) {
        var dropdowns = document.getElementsByClassName("dropdown-content");
        var i;
        for (i = 0; i < dropdowns.length; i++) {
            var openDropdown = dropdowns[i];
            if (openDropdown.classList.contains('show')) {
                openDropdown.classList.remove('show');
        }
    }

    // Taken from the second code block
    if (event.target == modal) {
        modal.style.display = "none";
    }
}

活动

         <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 &amp; conditions" />

        </LinearLayout>

答案 1 :(得分:0)

尝试添加android:linksClickable

<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/terms"
android:linksClickable="true"
android:id="@+id/registerSwitch"/>

答案 2 :(得分:0)

尝试以下代码

<string name="terms">Accept <a href=""http://www.google.es">"http://www.google.es</a>terms &amp; conditions</string>

在strings.xml中

Switch terms = (Switch) findViewById(R.id.registerSwitch);
terms.setMovementMethod(LinkMovementMethod.getInstance());

最后是活动

{{1}}