android-在ListView的ArrayAdapter中使用Linkify会导致RuntimeException

android-在ListView的ArrayAdapter中使用Linkify会导致RuntimeException,第1张

概述我的ArrayAdapter中有一个TextView,其中可能包含一些超链接.对于这些链接,我使用Linkify:publicViewgetView(intposition,ViewconvertView,ViewGroupparent){ViewrowView=convertView;if(rowView==null){rowView=inflater.inflate(R.layout.l

我的ArrayAdapter中有一个TextVIEw,其中可能包含一些超链接.对于这些链接,我使用linkify:

public VIEw getVIEw(int position, VIEw convertVIEw, VIEwGroup parent) {    VIEw rowVIEw = convertVIEw;    if (rowVIEw == null) {        rowVIEw = inflater.inflate(R.layout.List_item_2, null);        holder = new VIEwHolder();        holder.content = (TextVIEw) rowVIEw.findVIEwByID(R.ID.postContent);        holder.date = (TextVIEw) rowVIEw.findVIEwByID(R.ID.postDate);        rowVIEw.setTag(holder);    } else {        holder = (VIEwHolder) rowVIEw.getTag();    }    holder.content.setText(contents.get(position));    holder.date.setText(dates.get(position));    linkify.addlinks(holder.content, linkify.ALL);    return rowVIEw;}

但是因为linkify是添加在ArrayAdapter中的,所以我得到了一个例外:

08-05 16:42:16.715: E/AndroIDRuntime(20598): FATAL EXCEPTION: main08-05 16:42:16.715: E/AndroIDRuntime(20598): androID.util.AndroIDRuntimeException: Calling startActivity() from outsIDe of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?08-05 16:42:16.715: E/AndroIDRuntime(20598):    at androID.app.ContextImpl.startActivity(ContextImpl.java:921)08-05 16:42:16.715: E/AndroIDRuntime(20598):    at androID.content.Contextwrapper.startActivity(Contextwrapper.java:283)08-05 16:42:16.715: E/AndroIDRuntime(20598):    at androID.text.style.URLSpan.onClick(URLSpan.java:62)

我该如何进行这项工作?我想不出另一种选择.

解决方法:

查看日志中的异常,似乎在分配ArrayAdapter时使用了应用程序上下文.例如,如果您的代码类似于以下内容:

    ListVIEw.setAdapter(new ArrayAdapter<String>(context,            androID.R.layout.simple_List_item_1,            data) {        @OverrIDe        public VIEw getVIEw(int position, VIEw convertVIEw, VIEwGroup parent) {            // ...        }    });

您必须使用应用程序上下文初始化了上面的context变量,如下所示:

    Context context = getApplicationContext();

为避免该错误,您应该使用Activity实例对其进行初始化:

    Context context = this;

或者,如果您的代码在Fragment中:

    Context context = getActivity();
总结

以上是内存溢出为你收集整理的android-在ListView的ArrayAdapter中使用Linkify会导致RuntimeException全部内容,希望文章能够帮你解决android-在ListView的ArrayAdapter中使用Linkify会导致RuntimeException所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1095794.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存