android listview asynctask,关于android:ListView + ArrayList + AsyncTask

本问题已经有最佳答案,请猛点这里访问。

我的想法是使用AsynTask下载数据集并存储在arrayList中。 我已经检查并运行良好。

在onPostExecute方法中,我调用一个函数来更新listView,然后加载存储在ArrayList中的数据。

码:

protected void onPostExecute(String result)

{

progressDialog.setProgress(99);

actualizarDisplay();

}

方法actulizarDisplay:

dataAdapter = new MyCustomAdapter(this,R.layout.servicio, listaServicios);

ListView listView = (ListView) findViewById(R.id.listaServ);

listView.setAdapter(dataAdapter);

和类MyCustomAdapter:

private class MyCustomAdapter extends ArrayAdapter

{

private ArrayList servicioList;

public MyCustomAdapter(Context context, int textViewResourceId,ArrayList servicioList)

{

super(context, textViewResourceId,servicioList);

this.servicioList = new ArrayList();

this.servicioList.addAll(servicioList);

}

private class ViewHolder

{

TextView nombre, hora, lugar, fecha;

ImageView tipo;

}

@Override

public View getView(int position, View convertView, ViewGroup parent)

{

ViewHolder holder = null;

if (convertView == null)

{

LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);

convertView = vi.inflate(R.layout.servicio, null);

holder = new ViewHolder();

holder.nombre = (TextView) convertView.findViewById(R.id.titulo);

holder.lugar = (TextView) convertView.findViewById(R.id.lugar);

holder.hora = (TextView) convertView.findViewById(R.id.hora);

holder.fecha = (TextView) convertView.findViewById(R.id.fecha);

convertView.setTag(holder);

}

else

{

holder = (ViewHolder) convertView.getTag();

}

Servicio servicio = servicioList.get(position);

Log.i("ConvertView", servicio.getNombre()); // the correct value is displayed

holder.nombre.setText(servicio.getNombre());

holder.hora.setText(servicio.getHora());

holder.lugar.setText(servicio.getLugar());

holder.fecha.setText(servicio.getFecha());

if (servicio.tipo == 0)

holder.tipo.setImageResource(R.drawable.cultural);

return convertView;

}

}

这是logcat中的错误,第423行是:holder.nombre.setText(servicio.getNombre());

FATAL EXCEPTION: main java.lang.NullPointerException at

app.serviciosprote.Inicio$MyCustomAdapter.getView(Inicio.java:423)

at android.widget.AbsListView.obtainView(AbsListView.java:2350)

at android.widget.ListView.measureHeightOfChildren(ListView.java:1409)

at android.widget.ListView.onMeasure(ListView.java:1273)

at android.view.View.measure(View.java:15286)

at android.widget.RelativeLayout.measureChild(RelativeLayout.java:602)

at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:415)

at android.view.View.measure(View.java:15286)

at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4832)

at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1390)

at android.widget.LinearLayout.measureVertical(LinearLayout.java:681)

at android.widget.LinearLayout.onMeasure(LinearLayout.java:574)

at android.view.View.measure(View.java:15286)

at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4832)

at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)

at android.view.View.measure(View.java:15286)

at android.widget.LinearLayout.measureVertical(LinearLayout.java:833)

at android.widget.LinearLayout.onMeasure(LinearLayout.java:574)

at android.view.View.measure(View.java:15286)

at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4832)

at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)

at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2269)

感谢您的帮助

我认为问题已经解决,并且是如果TextView的文本很长且不适合,则会失败

您的解释没有任何意义。 您描述的内容不会导致您发布的堆栈跟踪。

关于点击监听器上的事件,用谷歌搜索,您会发现足够的tut可以帮助您..问另一个问题可能是一个骗子。

Comment

这可能意味着您的第一个textview不在此xml文件中

servicio.xml

没有ID为titulo的textview

holder.nombre = (TextView) convertView.findViewById(R.id.titulo);

因此空指针

仔细检查您是否在正确的xml中使用正确的ID调用正确的textview

谢谢。 您能说说我如何为点击事件做一个听众吗?

问另一个问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/555750.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ServletResponse reset()方法慎用

reset()用于重置,但是在重置的时候也会清空相关数据,例如session存的信息。

android10获取imei,Android 10 root用户获取imei

IMEI(International Mobile Equipment Identity)是国际移动设备识别码的缩写,由15-17位数字组成,与手机是一一对应的关系。无论刷机还是恢复出厂设置,该设备标识码都不会改变,所以在广告和流量统计等方面特别好用,备受…

JAVA基础之HttpServletResponse响应

JAVA基础之HttpServletResponse响应 用户在客户端输入网址(虚拟路径)时,开始发送一个HTTP请求(请求行、请求头、请求体)至服务器。服务器内的Tomcat引擎会解析请求的地址,去找XML文件,然后根据…

android imageview 设置网络图片,ImageView加载网络图片

android网络加载图片框架Android-Universal-Image-Loader功能非常强大,其开源地址https://github.com/nostra13/Android-Universal-Image-Loader,讲解非常地详细,今天我要贴下工作中用到的利用这个框架加载网络图片并在ImageView控件中显示出…

Logger之Logger.getLogger(CLass)

之前一直在使用System.out.println()来调试.但是用这种方式开发项目部署到生产环境,会因为众多的控制台输出降低应用的性能.这时候Log4J就成为可平衡开发和部署应用的利器了. 在项目中使用Log4J并不是一件困难的事情,简单粗暴的方式就是在每个类A中声明一个Logger私有属性 pri…

订阅号助手android,微信订阅号助手app

微信订阅号助手app属于微信官方推出的软件,可以把我们的手机当做公众号的平台,让你直接用手机来实现公众号的各种工作、互动内容,微信订阅号助手app不用担心使用一些第三方软件被封号了,非常实用可靠。【应用介绍】订阅号助手是一…

使用LoggerFactory.getLogger(xxx.class)方法在控制台打印日志信息

使用System.out.println()来调试.但是用这种方式开发项目部署到生产环境,会因为众多的控制台输出降低应用的性能.这时候Log4J就成为可平衡开发和部署应用的利器了. 使用指定的类XXX初始化日志对象,方便在日志输出的时候,可以打印出日志信息所属的类。 …

signature=f0dd2033ed5bb3cdb94f9136381f7750,Lesson 8: Signature Assignment

摘要:This unit will focus on the Civil Rights Era in the 1960s. Students will learn what the Civil Rights Movement was and how it changed the United States. By learning about the pivotal leaders of the movement, students will build their underst…

LoggerFactory.getLogger的用法

Logger类下有多个不同的error方法,根据传入参数的个数及类型的不同,自动选择不同的重载方法。 使用,只打印异常,不打印堆栈信息 private static final Logger logger LoggerFactory.getLogger(LoggerTest.class);Testpublic voi…

html自动增加vbs代码,vbs脚本病毒代码大全编步骤四个

应用程序通过ActiveX的属性HTMLPageTextWithTags(主页不嵌有HTML代码时用属性HTMLPageTextWithOutTags)读页面文本交互模式;允许显示用户提示和脚本错误2.ntlm.vbs***************ntlm.vbsby黑嘿黑***************dimwshsetwshCreateObject("WScript.Shell&quo…

java util logger slf4j_别再自己用LoggerFactory生成logger实例了,试试slf4j注解

背景 在项目开发中,记录日志是必做的一件事情。日志的实现有很多种:Logback,Log4j2,log4j,JAVA Util Logging等等。 而slf4j是一个适配层,由适配层决定使用哪一种日志系统,而调用端只需要做的…

正则匹配承兑的html,正则匹配闭合HTML标签(支持嵌套)

原标题:正则匹配闭合HTML标签(支持嵌套)任何复杂的正则表达式都是由简单的子表达式组成的,要想写出复杂的正则来,一方面需要有化繁为简的功底,另外一方面,我们需要从正则引擎的角度去思考问题。关于正则引擎的原理&…

private static Logger logger =Logger.getLogger(AssembleMsgService.class)什么意思?

作为一个新人中的菜鸡,最近在看一个项目的代码其中有这么一段看得我很是费解 public class AssembleMsgService {private static Logger logger Logger.getLogger(AssembleMsgService.class);1、Logger logger logger.getlogger(); 看到这个会想到这是log4j下的…

日志框架介绍(SLF4J及其使用)

本文主要介绍 1.日志框架基本介绍及Spring Boot中默认使用框架(SLF4JLogBack); 2.SLF4J的使用 3.项目中日志框架统一问题 4.Spring Boot中如何实现日志框架统一问题(3的最佳实践) 1. 日志框架基本介绍 一般情况下搭建日志框架时,搭建 日志抽象层(定…

jmeter生成html报告修改,Jmeter生成html报告(示例代码)

新的JMeter版本中引入了Dashboard Report,用于生成HTML页面格式图形化报告的扩展模块。注:本文用的是3.2版本。生成html报告一、检查.jtl文件,如果没有.jtl文件,运行如下命令:jmeter -n -t 天气api.jmx -l result.jtl …

SpringBoot使用Slf4j+Log4j2完成项目的日志记录

SpringBoot使用Slf4jLog4j完成项目的日志记录 前言 本示例采用SpringBoot项目使用SpringAOP记录日志,Slf4j作为日志门面,Log4j2作为日志实现实,实现开发中的日志记录. 部分效果展示 : 日志文件 : 日志信息 : 代码具体实现如下…

鸿蒙构架谁提供的,科普丨关于“鸿蒙”,不知道这些你都不好意思跟别人打招呼!...

鸿蒙的英文名是Harmony OS华为消费者业务CEO余承东8月9日正式发布鸿蒙系统,英文名是Harmony OS 。国家知识产权局商标局网站显示,华为已经申请注册“华为鸿蒙”商标,申请日期是2018年8月24日,注册公告日期是2019年5月14日。鸿蒙是…

SpringBoot——slf4j+logback日志处理及配置详解

SpringBoot——sl4jlogback日志处理及配置详解 日志的级别 打印级别&#xff1a;ALL > TRACE > FATAL > DEBUG > INFO > WARN > ERROR > OFF 输出级别&#xff1a;TRACE > DEBUG > INFO > WARN > ERROR logback-spring.xml配置文件 <…

html页面如何引入elementui,element-ui中按需引入的实现

element-ui中按需引入为什么选择 element-ui 而不是 iview因为在多次使用两个组件的过程中慢慢发现&#xff0c;iview 的一些组件还是需要再完善&#xff0c;而 element-ui 现在更加的成熟所以&#xff0c; 这里我们一起来学习一下在 vue 中按需引入 element-ui 一些组件中的坑…

springBoot Logging 日志详解

文章目录日志格式控制台输出彩色编码输出文件输出文件级别自定义日志配置Logback 扩展profile 指定 配置文件Environment 属性springBoot 日志使用Commons Logging作为抽象层&#xff0c;并将具体实现开放&#xff0c;支持Java Util Logging、Log4j2和Logback。loggers 默认配置…