java - 在 Android Studio(KOTLIN) 中使复选框的文本成为可点击的链接,从而打开某个网站?

标签 java android kotlin

我正在制作这个应用程序,其中包含 ScrollView 线性布局中的 1000 个链接,复选框中的文本如下所示 ---> 链接 1
现在我希望它在单击时打开特定链接,并且复选框在 15 秒后立即获得一个勾号。我怎样才能在 Kotlin 中做到这一点?

这是我的主要 Activity

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.Parcel
import android.os.Parcelable

class MainActivity() : AppCompatActivity(), Parcelable {
    constructor(parcel: Parcel) : this() {
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }

    override fun writeToParcel(parcel: Parcel, flags: Int) {

    }

    override fun describeContents(): Int {
        return 0
    }

    companion object CREATOR : Parcelable.Creator<MainActivity> {
        override fun createFromParcel(parcel: Parcel): MainActivity {
            return MainActivity(parcel)
        }

        override fun newArray(size: Int): Array<MainActivity?> {
            return arrayOfNulls(size)
        }
    }
}

这是我的 xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/scrollview"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >


        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="72dp">

            <ImageView
                android:id="@+id/imageView6"
                android:layout_width="match_parent"
                android:layout_height="68sp"
                android:contentDescription="@string/todo"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:srcCompat="@drawable/untitled_1" />

            <ImageView
                android:id="@+id/imageView"
                android:layout_width="92dp"
                android:layout_height="64dp"
                android:layout_marginTop="4dp"
                android:layout_marginEnd="40dp"
                android:contentDescription="@string/todo"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:srcCompat="@drawable/wallet_icon_final" />

            <ImageView
                android:id="@+id/imageView3"
                android:layout_width="49dp"
                android:layout_height="45dp"
                android:layout_marginTop="10dp"
                app:layout_constraintStart_toStartOf="@+id/imageView6"
                app:layout_constraintTop_toTopOf="@+id/imageView6"
                app:srcCompat="@drawable/rupee_icon"
                android:contentDescription="@string/todo" />

        </androidx.constraintlayout.widget.ConstraintLayout>

        <CheckBox
            android:layout_width="177dp"
            android:layout_height="wrap_content"
            android:text="@string/Link"
            android:textSize="24sp" />

        <View
            android:layout_width="178dp"
            android:layout_height="9dp"
            android:background="?android:attr/listDivider" />
        <CheckBox
            android:layout_width="177dp"
            android:layout_height="wrap_content"
            android:text="@string/Link"
            android:textSize="24sp" />

        <View
            android:layout_width="178dp"
            android:layout_height="9dp"
            android:background="?android:attr/listDivider" />
        <CheckBox
            android:layout_width="177dp"
            android:layout_height="wrap_content"
            android:text="@string/Link"
            android:textSize="24sp" />

        <View
            android:layout_width="178dp"
            android:layout_height="9dp"
            android:background="?android:attr/listDivider" />
        <CheckBox
            android:layout_width="177dp"
            android:layout_height="wrap_content"
            android:text="@string/Link"
            android:textSize="24sp" />

        <View
            android:layout_width="178dp"
            android:layout_height="9dp"
            android:background="?android:attr/listDivider" />
        <CheckBox
            android:layout_width="177dp"
            android:layout_height="wrap_content"
            android:text="@string/Link"
            android:textSize="24sp" />

        <View
            android:layout_width="178dp"
            android:layout_height="9dp"
            android:background="?android:attr/listDivider" />
        <CheckBox
            android:layout_width="177dp"
            android:layout_height="wrap_content"
            android:text="@string/Link"
            android:textSize="24sp" />

        <View
            android:layout_width="178dp"
            android:layout_height="9dp"
            android:background="?android:attr/listDivider" />
        <CheckBox
            android:layout_width="177dp"
            android:layout_height="wrap_content"
            android:text="@string/Link"
            android:textSize="24sp" />

        <View
            android:layout_width="178dp"
            android:layout_height="9dp"
            android:background="?android:attr/listDivider" />
        <CheckBox
            android:layout_width="177dp"
            android:layout_height="wrap_content"
            android:text="@string/Link"
            android:textSize="24sp" />

        <View
            android:layout_width="178dp"
            android:layout_height="9dp"
            android:background="?android:attr/listDivider" />
        <CheckBox
            android:layout_width="177dp"
            android:layout_height="wrap_content"
            android:text="@string/Link"
            android:textSize="24sp" />

        <View
            android:layout_width="178dp"
            android:layout_height="9dp"
            android:background="?android:attr/listDivider" />
        <CheckBox
            android:layout_width="177dp"
            android:layout_height="wrap_content"
            android:text="@string/Link"
            android:textSize="24sp" />

        <View
            android:layout_width="178dp"
            android:layout_height="9dp"
            android:background="?android:attr/listDivider" />
        <CheckBox
            android:layout_width="177dp"
            android:layout_height="wrap_content"
            android:text="@string/Link"
            android:textSize="24sp" />

        <View
            android:layout_width="178dp"
            android:layout_height="9dp"
            android:background="?android:attr/listDivider" />
        <CheckBox
            android:layout_width="177dp"
            android:layout_height="wrap_content"
            android:text="@string/Link"
            android:textSize="24sp" />

        <View
            android:layout_width="178dp"
            android:layout_height="9dp"
            android:background="?android:attr/listDivider" />
        <CheckBox
            android:layout_width="177dp"
            android:layout_height="wrap_content"
            android:text="@string/Link"
            android:textSize="24sp" />

        <View
            android:layout_width="178dp"
            android:layout_height="9dp"
            android:background="?android:attr/listDivider" />
        <CheckBox
            android:layout_width="177dp"
            android:layout_height="wrap_content"
            android:text="@string/Link"
            android:textSize="24sp" />

        <View
            android:layout_width="178dp"
            android:layout_height="9dp"
            android:background="?android:attr/listDivider" />
        <CheckBox
            android:layout_width="177dp"
            android:layout_height="wrap_content"
            android:text="@string/Link"
            android:textSize="24sp" />

        <View
            android:layout_width="178dp"
            android:layout_height="9dp"
            android:background="?android:attr/listDivider" />
        <CheckBox
            android:layout_width="177dp"
            android:layout_height="wrap_content"
            android:text="@string/Link"
            android:textSize="24sp" />

        <View
            android:layout_width="178dp"
            android:layout_height="9dp"
            android:background="?android:attr/listDivider" />
        <CheckBox
            android:layout_width="177dp"
            android:layout_height="wrap_content"
            android:text="@string/Link"
            android:textSize="24sp" />

        <View
            android:layout_width="178dp"
            android:layout_height="9dp"
            android:background="?android:attr/listDivider" />
        <CheckBox
            android:layout_width="177dp"
            android:layout_height="wrap_content"
            android:text="@string/Link"
            android:textSize="24sp" />

        <View
            android:layout_width="178dp"
            android:layout_height="9dp"
            android:background="?android:attr/listDivider" />
        <CheckBox
            android:layout_width="177dp"
            android:layout_height="wrap_content"
            android:text="@string/Link"
            android:textSize="24sp" />

        <View
            android:layout_width="178dp"
            android:layout_height="9dp"
            android:background="?android:attr/listDivider" />
        <CheckBox
            android:layout_width="177dp"
            android:layout_height="wrap_content"
            android:text="@string/Link"
            android:textSize="24sp" />

        <View
            android:layout_width="178dp"
            android:layout_height="9dp"
            android:background="?android:attr/listDivider" />


    </LinearLayout>
</ScrollView>

最佳答案

使您的文本可跨越字符串。

SpannableString string = new SpannableString("Text with a url span");
string.setSpan(new URLSpan("http://www.developer.android.com"), 12, 15, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

yourCheckbox.setText(string);

https://developer.android.com/reference/android/text/style/URLSpan

关于java - 在 Android Studio(KOTLIN) 中使复选框的文本成为可点击的链接,从而打开某个网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62339348/

相关文章:

java - Azure移动应用程序获取方法android卡住应用程序

Android 可扩展 ListView : how to detect when the scroll hits the bottom/end of list

java - android中的AES加密和php中的解密,反之亦然

java - Hibernate + Spring : java. lang.NoSuchMethodError : org. jboss.logging.Logger.debugf(Ljava/lang/String;I)V

java - 可以检测双击 JComboBox 项目吗?

Android GCM - 未找到类异常

android - 如何保存 logcat 消息

kotlin - 如何在 kotlin native 中使用 swift 库?

kotlin - 如何在 kotlin DSL 构建器中创建所需的字段

java - 在我需要做一些复杂的事情之前,JAXB 一直很好用。有哪些选择?