как установить интерактивные ссылки в текстовом представлении расширяемого списка в Android?

в моем приложении для Android я использую расширяемый вид списка для отображения некоторого текста. Этот текст содержит веб-URL-адреса, поэтому я хочу, чтобы эти URL-адреса можно было щелкнуть, чтобы перейти на запрошенную веб-страницу. я добавил следующую строку xml в макет моей группы для отображения ссылок в моем расширяемом списке.

android:autoLink="web"

Он отображает URL-адреса синим цветом, но расширяемый список не расширяется, и когда я нажимаю на ссылку, он дает следующее исключение. Как я могу это исправить??

Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?

после кликов по родительскому дочернему представлению отображается его содержимое. так что я хочу сделать, это установить кликабельный URL-адрес, который отображается в parent.в то время как расширять и сворачивать расширяемый список.

я сделал это, но это также не работает.

expList.setOnGroupClickListener(new OnGroupClickListener() {

            @Override
            public boolean onGroupClick(ExpandableListView parent, View v,
                    int groupPosition, long id) {

                Linkify.addLinks(groupNameContent, Linkify.WEB_URLS);
                Log.e("setOnGroupClickListener", "tested");
                return true;
            }
        });

parent — это просто текстовое представление, когда пользователь нажимает на родителя, он расширяется и отображает дочерний элемент, который содержит дополнительные сведения о parent: parent xml:

 <LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="5dp" >

    <TextView
        android:id="@+id/content"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="5dp"
        android:textSize="11dp"
        android:textStyle="normal"

         />

person Dinesh Anuruddha    schedule 05.03.2012    source источник


Ответы (3)


Я дам вам другой сценарий, который позволит достичь той же цели. Это означает, что когда вы нажимаете на родительский элемент ExpandableListView, он показывает дочерние элементы. Затем, щелкнув тот же родительский элемент, родитель свернется и спросит пользователя, хочет ли он / она перейти к какой-либо ссылке, которая находится в родительском тексте. Следующие изображения покажут вам, что я собираюсь сделать здесь. Расширяемый список (рис. 1) введите здесь описание изображения

Расширяемый вид списка после нажатия на родительский элемент введите здесь описание изображения

Дайте пользователю возможность выбрать переход по ссылке или возврат к обычному интерфейсу введите здесь описание изображения

  • Вы использовали OnGroupClickListener, но я использую OnGroupCollapseListener.
  • Следующим шагом является получение содержимого щелкнутого родительского элемента. Вы можете сделать это с помощью getGroup(groupPosition)
  • Затем извлеките часть URL-адреса и отобразите ее в диалоговом окне, как показано на рисунке 3.
person AnujAroshA    schedule 06.03.2012

Когда вы запускаете новое намерение из внешней активности, необходимо установить флаг с пользователем запуска активности

intent.setFlag(Intent.FLAG_ACTIVITY_NEW_TASK)
person Android Leo    schedule 26.05.2012

Попробуйте использовать linkify. Пример здесь..

person Vinay    schedule 05.03.2012
comment
да, я также пробовал linkify, но он не работает с расширяемым списком. Это даст то же исключение. - person Dinesh Anuruddha; 05.03.2012
comment
здесь у меня есть 2 требования. (1) когда я нажимаю на родителя, он должен отображать дочерний элемент. (2) я должен иметь возможность щелкать ссылки родителя, чтобы перейти на веб-страницы. я хочу сделать это оба. - person Dinesh Anuruddha; 05.03.2012
comment
Хорошо .. Если как насчет обработки с помощью onItemClickListner и проверки того, было ли нажато текстовое представление? - person Vinay; 05.03.2012
comment
можешь дать реализацию? - person Dinesh Anuruddha; 05.03.2012
comment
пл. уточните, кто ваш родитель и кто ваш ребенок.. Может быть, также опубликуйте свой XML, чтобы мы могли определить, что и где должно обрабатываться. - person Vinay; 05.03.2012