在自定义列表视图点击链接 [英] Clicking links in custom listview

查看:168
本文介绍了在自定义列表视图点击链接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图把一个库Twitter的饲料,我已经得到了大部分工作,但我快到凡在我的文字链接点击时崩溃的问题,我想看看是否有人可以点我在正确的方向固定这一点。

I'm attempting to put together a library for Twitter feeds and I've got most of it working, but I'm running into an issue where links in my text are crashing when clicked, and I wanted to see if anyone could point me in the right direction for fixing this.

我的鸣叫的主要文本字段在XML定义为这样的:

The main text field of my tweet is defined in XML as this:

<TextView
    android:textColor="@android:color/black"
    android:id="@+id/TweetUITweetTextTextView"
    android:padding="@dimen/tweetTextPadding"
    android:layout_toRightOf="@+id/TweetUIUserProfileImageView"
    android:layout_below="@+id/TweetUIUsernameTextView"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:linksClickable="true"
    android:autoLink="web"
    android:text="@null" />

这是位于一个相对的布局,我到一个自定义TweetView级扩大内部。

And this is located inside of a relative layout that I expand into a custom "TweetView" class.

该TweetView需要鸣叫的对象,基本上是一组包含一个JSON查询分析的信息串并设置这些字符串(在这种情况下,从鸣叫锚标记和诸如此类的东西从URL中的元数据在正文Twitter的JSON提要)的TextView的这个:

The TweetView takes a Tweet Object that is basically a set of strings that contain the information parsed from a JSON query and sets those strings (In this case, the main text from the Tweet with anchor tags and whatnot from the URL metadata in the Twitter JSON feed) to the textview with this:

      if( tweet.tweetText != null && tweet.tweetText != "" )
            tweetTextTextView.setText( Html.fromHtml( tweet.tweetTextWithLinks ) );
        else
            tweetTextTextView.setText( "" );

至于在碰撞我的错误堆栈,我有这样的:

As for my error stack on crash, I have this:

 05-30 14:42:22.206: E/InputEventReceiver(22150): Exception dispatching input event.
 05-30 14:42:22.206: E/MessageQueue-JNI(22150): Exception in MessageQueue callback: handleReceiveCallback
 05-30 14:42:22.216: E/MessageQueue-JNI(22150): android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
 05-30 14:42:22.216: E/MessageQueue-JNI(22150):     at android.app.ContextImpl.startActivity(ContextImpl.java:944)
 05-30 14:42:22.216: E/MessageQueue-JNI(22150):     at android.app.ContextImpl.startActivity(ContextImpl.java:931)
 05-30 14:42:22.216: E/MessageQueue-JNI(22150):     at android.content.ContextWrapper.startActivity(ContextWrapper.java:284)
 05-30 14:42:22.216: E/MessageQueue-JNI(22150):     at android.text.style.URLSpan.onClick(URLSpan.java:62)
 05-30 14:42:22.216: E/MessageQueue-JNI(22150):     at android.text.method.LinkMovementMethod.onTouchEvent(LinkMovementMethod.java:212)
 05-30 14:42:22.216: E/MessageQueue-JNI(22150):     at android.widget.TextView.onTouchEvent(TextView.java:7536)
 05-30 14:42:22.216: E/MessageQueue-JNI(22150):     at android.view.View.dispatchTouchEvent(View.java:7246)
 05-30 14:42:22.216: E/MessageQueue-JNI(22150):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2174)
 05-30 14:42:22.216: E/MessageQueue-JNI(22150):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1917)
 05-30 14:42:22.216: E/MessageQueue-JNI(22150):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2174)
 05-30 14:42:22.216: E/MessageQueue-JNI(22150):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1917)
 05-30 14:42:22.216: E/MessageQueue-JNI(22150):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2174)
 05-30 14:42:22.216: E/MessageQueue-JNI(22150):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1917)
 05-30 14:42:22.216: E/MessageQueue-JNI(22150):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2174)
 05-30 14:42:22.216: E/MessageQueue-JNI(22150):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1917)
 05-30 14:42:22.216: E/MessageQueue-JNI(22150):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2174)
 05-30 14:42:22.216: E/MessageQueue-JNI(22150):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1917)
 05-30 14:42:22.216: E/MessageQueue-JNI(22150):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2174)
 05-30 14:42:22.216: E/MessageQueue-JNI(22150):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1917)
 05-30 14:42:22.216: E/MessageQueue-JNI(22150):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2174)
 05-30 14:42:22.216: E/MessageQueue-JNI(22150):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1917)
 05-30 14:42:22.216: E/MessageQueue-JNI(22150):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1953)
 .....

感谢您!

推荐答案

也许你传递适配器错误的情况下。例如。应用程序上下文,而不是活动场景。

Probably you pass "wrong" context in your adapter. E.g. application context instead of activity context.

这篇关于在自定义列表视图点击链接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆