首页 > 解决方案 > 如何使部分字符串文本可点击?

问题描述

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

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

这是我的 String.xml

重生后,信徒有望成长(1 Pet.2:2)。这种成长来自对我们的主和救主耶稣基督(2 Pet.3:18)的认识,他是本质、实质和见证圣经(约翰福音 5:39,路加福音 24:25-27、44-47)。我们希望教导耶稣这个人,他是神的话(约翰福音 1:1-17),并通过这样做,找出他为我们做了什么,我们在他里面是谁,我们在他里面有什么。我们还通过观察向我们启示上帝的耶稣来寻找关于上帝的真理(来 1:1-3, 2 Cor.4:3-4, Col. 1:12-15)。此外,信徒被期望在他的行为中荣耀上帝(林前 10:31),他要负责并在他是谁的现实中行走。他要为上帝服务(罗 12:11)。我们祈祷您获得圣灵的智慧和启示,并在我们一起努力学习本手册时增加知识和理解力。祝福!

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

标签: androidandroid-alertdialog

解决方案


像这样试试

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

推荐阅读