Как сделать часть текста строки интерактивной? - PullRequest
0 голосов
/ 16 февраля 2019

Как отобразить диалоговое окно, когда щелкается часть текста String.xml?У меня длинная строка, и я хочу сделать часть строки, чтобы при ее нажатии отображалось диалоговое окно.

Теперь я не хочу, чтобы текст приводил меня к ссылке;но это должно выглядеть как ссылка.Затем, это должно привести меня к активности диалогового окна при нажатии на текст.Текст также не должен выглядеть как кнопка.Он должен выглядеть как текст ссылки, но при щелчке на нем должно отображаться диалоговое окно. Более того, диалоговое окно содержит серию строк для отображения дополнительной информации о тексте, по которому щелкнули.

Это моя строка.xml

Ожидается, что после нового рождения верующий будет расти (1 Петра 2: 2). Этот рост происходит благодаря знанию нашего Господа и Спасителя Иисуса Христа (2Пет. 3:18), который является сущностью, сущностью и свидетельством Писания (Ин. 5:39, Лук. 24: 25-27, 44-47).Мы надеемся научить Иисуса Христа, который является словом Божьим (Иоанна 1: 1-17), и при этом выяснить, что он сделал для нас, кто мы в Нем и что мы имеем в Нем.Мы также стремимся узнать истины о Боге, изучая Иисуса, Который открывает нам Бога (Евр. 1: 1-3, 2 Кор. 4: 3-4, Кол. 1: 12-15).Кроме того, верующий должен прославлять Бога в своем поведении (1 Кор. 10:31), он должен нести ответственность и ходить в реальности того, кем он является.Он должен быть отдан на службу Богу (Рим. 12:11).Мы молимся о том, чтобы вы получили мудрость и откровение Духа и чтобы вы приобрели больше знаний и понимания, когда мы усердно вместе изучаем это руководство.Благословения!

Я хочу щелкнуть (1 Пет. 2: 2), чтобы отобразить диалоговое окно, содержащее информацию о библии.

1 Ответ

0 голосов
/ 16 февраля 2019

Попробуйте вот так

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