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

问题描述 投票:0回答:1

单击String.xml文本的一部分时,如何显示对话框?我有一个很长的字符串,我希望在单击它时使字符串的一部分显示一个对话框。

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

这是我的String.xml

在新生的时候,信徒应该成长(彼前2:2)。这种成长来自我们的主和救主,耶稣基督(彼​​前3:18)的知识,他们是本质,实质和见证。圣经(约翰福音5:39,路加福音24:25-27,44-47)。我们希望教导耶稣是上帝之道的人(约翰福音1:1-17),并且这样做,找出他为我们所做的,我们在他里面的人以及我们在他里面所拥有的。我们也通过调查向我们启示上帝的耶稣来寻求关于上帝的真理(希伯来书1:1-3,哥林多后书4:3-4,西1:12-15)。此外,信徒应该在他的行为中荣耀上帝(哥林多后书10:31),他要负责任并且行在他是谁的现实中。他要被赐给上帝的服务(罗马书12:11)。我们祈祷你得到圣灵的智慧和启示,并在我们一起努力学习本手册时增加知识和理解。祝福!

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

android android-alertdialog
1个回答
0
投票

试试这样吧

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);
    }

在onCreate()方法中

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

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

编辑

对于多个字符串

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

            makeLinks(tvLink, new String[]{"your string","your string 2"}, new ClickableSpan[]{
                    yourstringClick,yourStringClick2
            });
© www.soinside.com 2019 - 2024. All rights reserved.