如何使字符串文本的一部分可点击?

时间:2019-02-16 06:59:16

标签: android android-alertdialog

当单击String.xml文本的一部分时,如何显示对话框?我有一个很长的字符串,我想把它做成字符串的一部分,以便在单击该对话框时显示一个对话框。

现在,我不希望文本将我带到链接。但它应该看起来像一个链接。然后,单击文本时,它应该带我进入对话框活动。文本也不应看起来像按钮。它应该看起来像一个链接文本,但是单击后应显示一个对话框。此外,该对话框包含一系列String,以显示有关单击的文本的更多信息。

这是我的String.xml

  

在新出生的时候,信徒有望成长(1彼得2:2)。这种成长来自对我们的主和救主耶稣基督(2彼得3:18)的了解,他是本质,圣经的实质和见证(约翰福音5:39,路加福音24:25-27,44-47)。我们希望教导耶稣这是神的道的人(约翰福音1:1-17),并这样做,找出他为我们做了什么,我们在他里面的人,以及我们在他里面的人。我们还寻求通过调查向我们启示上帝的耶稣来找出关于上帝的真理(来1:1-3,2 Cor.4:3-4,上1:12-15)。此外,信徒的行为应归荣耀给上帝(哥林多前书10:31),他应该负责任,要在自己的真实世界中行事。他将被奉献给上帝服务(罗马书12:11)。我们祈求您接受圣灵的智慧和启示,并在我们共同努力学习本手册的过程中增加知识和理解。   祝福!

我想单击(1 Pet。2:2)以显示一个对话框,其中包含圣经参考的信息。

1 个答案:

答案 0 :(得分:0)

尝试这样

quotation.creation

在onCreate()方法中

public void makeLinks(TextView textView, String[] links, ClickableSpan[] clickableSpans) {
        SpannableString spannableString = new SpannableString(textView.getText());
        for (int i = 0; i < links.length; i++) {
            ClickableSpan clickableSpan = clickableSpans[i];
            String link = links[i];

            int startIndexOfLink = textView.getText().toString().indexOf(link);
            spannableString.setSpan(clickableSpan, startIndexOfLink, startIndexOfLink + link.length(),
                    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        }
        textView.setMovementMethod(LinkMovementMethod.getInstance());
        textView.setText(spannableString, TextView.BufferType.SPANNABLE);
    }

修改

对于多个字符串

 ClickableSpan yourstringClick = new ClickableSpan() {
            @Override
            public void onClick(View view) {
              openyourdialoghere()
            }
        };

        makeLinks(tvLink, new String[]{"your string"}, new ClickableSpan[]{
                yourstringClick
        });