相关疑难解决方法(0)

处理textview链接点击我的Android应用程序

我目前正在TextView中呈现HTML输入,如下所示:

tv.setText(Html.fromHtml("<a href='test'>test</a>"));
Run Code Online (Sandbox Code Playgroud)

显示的HTML是通过外部资源提供给我的,所以我不能像我一样改变它,但我当然可以对HTML进行一些正则表达式的修改,比如将href值更改为其他内容.

我想要的是能够直接从应用程序中处理链接点击,而不是让链接打开浏览器窗口.这可以实现吗?我猜测可以将href-value的协议设置为类似"myApp://"的东西,然后注册一些可以让我的应用程序处理该协议的东西.如果这确实是最好的方式,我想知道这是怎么做的,但我希望有一个更简单的方法来说,"当在这个文本视图中点击链接时,我想提出一个接收的事件链接的href值作为输入参数"

android onclick textview

143
推荐指数
6
解决办法
10万
查看次数

Android ClickableSpan获取文本onClick()

我正在ClickableSpan使用TextView,我正在尝试获取单击的跨度文本.这是我的代码.

// this is the text we'll be operating on
SpannableString text = new SpannableString("Lorem ipsum dolor sit amet");

// make "dolor" (characters 12 to 17) display a toast message when touched
ClickableSpan clickableSpan = new ClickableSpan() {
    @Override
    public void onClick(View view) {
        // This will get "Lorem ipsum dolor sit amet", but I just want "dolor"
        String text = ((TextView) view).getText().toString(); 
        Toast.makeText(context, text, Toast.LENGTH_LONG).show();
    }
};

text.setSpan(clickableSpan, 12, 17, 0);
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我设置clickablespan了的TextView字符12到17,我想在拿到这些字符onClick …

android onclick textview clickable

18
推荐指数
2
解决办法
1万
查看次数

Textview的LinkMovementMethod阻止了listitem触摸事件

我对Listview有一些问题.Listview包含由imageview和textview组成的列表项.Textview包含可点击的链接.当我将LinkMovementMethod设置为textviews时,listitems不会收到onclick事件.我仍然找不到任何正确的解决方案=(.任何人都可以解释如何解决它或给出一个使用textite与listitem内部的可点击链接的例子吗?谢谢.这里是适配器中的textview创建:

    TextView text = (TextView) ((LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE))
                        .inflate(R.layout.post_content_text, null);
SpannableString sString = new SpannableString(d.getText());
//I have my own class UrlSpan that contain fields startPosition, endPosition and urlLink
for (UrlSpan us : ((TextData) d).getUrls())
                {
                    URLSpan urlSpan = new URLSpan(us.getUrl());
                    sString.setSpan(urlSpan, us.getStart(), us.getEnd(), SpannableString.SPAN_INCLUSIVE_INCLUSIVE);
                }
text.setText(sString);
text.setMovementMethod(LinkMovementMethod.getInstance());
view.addView(text);
Run Code Online (Sandbox Code Playgroud)

和列表项是:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:visibility="visible" >

    <LinearLayout
        style="?PostListRow"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_margin="10dp"
        android:orientation="vertical"
        android:padding="10dp" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="65dp"
            android:orientation="horizontal" >

            <ImageView
                android:id="@+id/user_image"
                android:layout_width="45dp"
                android:layout_height="45dp"
                android:layout_margin="3dp"
                android:clickable="true"
                android:src="@drawable/ic_no_photo" />

            <LinearLayout
                android:layout_width="fill_parent" …
Run Code Online (Sandbox Code Playgroud)

android listview listitem textview linkmovementmethod

8
推荐指数
1
解决办法
730
查看次数

当项目中包含链接时,ListView setOnItemClickListener不会触发

我正在努力在一个应用程序中集成Twitter,虽然一切正常,但是如果有一个链接,我就setOnItemClickListener()不会被触发ListView item.当item没有链接(URL)时,它可以正常工作.

单击URL本身可在浏览器中打开网页.

请参阅帖子末尾添加的参考截图.

这是一个ListView使用a 的习惯BaseAdapter.我不确定要放入哪一段代码,但是当指向这里的人可能需要的代码块时,我会立即添加它.

需要忽略项目中的链接(URL)背后的想法是提供一种功能,当用户点击其中时,显示推文详细信息.类似于Twitter Android应用程序的功能.

那么如何setOnItemClickListener()忽略项目中的链接呢?

更新:

好的.所以我不确定它是否与这个问题相关,但是,从SO的一些解决方案的组合导致我进入TweetLanes开源项目,我已经成功地完成了一些工作.但不幸的是,它没有解决我的主要问题.

如何setOnItemClickListener()忽略项目中的链接,以便我可以单击它并在另一个活动中显示详细信息然后,当我点击链接时,不会触发setOnItemClickListener()?我每次尝试都会不断获得部分解决方案.但有时,当我点击a时link,setOnItemClickListener()触发器也是如此.

这就是当前流程的样子:

在此输入图像描述

在前两个屏幕截图中,它可以正常工作.毕竟不是点击链接.

然而,在底部的两个中,当我单击@ibnlive链接时,它会显示用户的配置文件(@ibnlive).这部分源自TweetLanes来源.问题是,还会触发点击侦听器.这是我正在尝试的解决方案之一.在这种情况下,我已经注释掉setOnItemClickListener(),并正在使用OnClickListener()TextView.这是到目前为止部分成功的一种方法.

twitter android android-listview

5
推荐指数
1
解决办法
2125
查看次数