/AutoSpannableTextView

Support some of the key words can be clicked with the underline TextView

Primary LanguageJava

AutoSpannableTextView

Support some of the key words can be clicked with the underline TextView

Step1:

    <declare-styleable name="AutoLinkStyleTextView">
        <attr name="AutoLinkStyleTextView_text_value" format="string|reference"/>//key word with color and underline, and split with ','(en)
        <attr name="AutoLinkStyleTextView_default_color" format="color|reference"/>//word and underline's color
        <attr name="AutoLinkStyleTextView_has_under_line" format="boolean"/>//underline with true and false
        <attr name="AutoLinkStyleTextView_start_image" format="reference"/>//start with image 's TextView
        <attr name="AutoLinkStyleTextView_type">
            <enum name="start_image" value="0"/>
            <enum name="content_text" value="1"/>//default
        </attr>
    </declare-styleable>

Step2:

    //style1
    <xx.AutoLinkStyleTextView
        android:id="@+id/tv_clause"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="我已核对付款金额,仔细阅读并同意“购买须知”及约克论坛团购“用户条款”"
        android:textSize="16sp"
        app:AutoLinkStyleTextView_text_value="“购买须知”,“用户条款”"
        />
    //style2
    <xx.AutoLinkStyleTextView
        android:id="@+id/tv_start_image"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="活动介绍,开始以图片开头"
        android:textSize="16sp"
        app:AutoLinkStyleTextView_start_image="@mipmap/ic_qupai_subject_information"
        app:AutoLinkStyleTextView_type="start_image"
        />

Step3:

    //style1
    autoLinkStyleTextView.setOnClickCallBack(new AutoLinkStyleTextView.ClickCallBack() {
        @Override
        public void onClick(int position) {
            if (position == 0) {
                Toast.makeText(MainActivity.this, "购买须知", Toast.LENGTH_SHORT).show();
            } else if (position == 1) {
                Toast.makeText(MainActivity.this, "用户条款", Toast.LENGTH_SHORT).show();
            }
        }
     });
     
     //style2
     setStartImageText(tvStartImage.getText());