使用Adapter实现listview绑定数据,getView()方法未执行原因

目前在做一个社交功能,在原布局文件中添加listview并绑定到自定义的adapter(继承自BaseAdapter)发现未达到期望效果,调试发现未进入getView()方法;

不科学啊!!分明调用了adapter的notifyDataSetChanged()方法,然后就应该进入getView()啊、、、

在网上查资料,原因总结为三种:1、getCount()返回的size为0,因此不会执行;

               2、布局文件的问题、(这类问题应该不能统一,各种布局问题都可能导致getView不运行);

               3、线程问题、可能单独开了线程执行例如下载等操作,但修改UI必须是在主线程中的,也就是说注意看下是否是在主线程中;

回到我的问题:首先调试排除1跟3的可能,size返回为3,未单独开辟线程,所以很可能是2存在问题,之前一直觉得没问题额,listview添加在FrameLayout中,应该可以啊,从开始一直没用怀疑2,我也不确定是否存在除了以上3中之外的原因,尝试着改变布局、ok、getView() is ok!

所以碰到类似问题的同学不要急,应该就是上面三种原因,一一检查,祝您好运!

时间: 2024-08-07 08:34:59

使用Adapter实现listview绑定数据,getView()方法未执行原因的相关文章

GridView等表格模板列绑定数据的方法

//绑定GridView每一行中的CheckBoxList protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { CheckBoxList cbl = (CheckBoxList)e.Row.FindControl("ckbCheckBox"); if (cbl != null) {

xamarin.android listview绑定数据及点击事件

前言 listview是用来显示数据列表的一个控件,今天给大家带来如何使用cursor进行数据绑定以及点击事件. 导读 1.如何创建一个listview 2.如何使用cursor进行绑定数据 3.listview的点击事件 正文 1.如何创建一个listview 这里我们自定义一个listview的视图,首先打开Main.axml,拖一个listview放进去. 右击Layout新建一个视图,名为UserListItemLayout.axml,拖两个textview进去,如图 这样我们就完成了一

AlertDialog中使用ListView绑定数据

在实际工作过程中,单单使用AlertDialog的单选功能不一定能满足我们的需求,需要绑定数据到 listview 1. 自定义Layout LayoutInflater factory = LayoutInflater.from(DialogActivity.this);final View view = factory.inflate(R.layout.linerlayout, null); 2,构造数据 List<Map<String, String>> nameList =

Android LIstView初次创建getview方法执行多次问题

写listview优化的时候,发现Listview初次创建的时候会多次执行getView方法. <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools&quo

android getView方法不执行的一个原因是布局文件中没有给列表显示的位置

一个原因是布局文件中,没有给列表显示的位置. 例如:下面的布局 <com.xxx.view.BaseListView android:id="@+id/list_find" android:layout_width="match_parent" android:layout_height="match_parent" android:cacheColorHint="@android:color/transparent"

使用自定的Adapter绑定ListView/GridView数据

使用自定的Adapter绑定ListView/GridView数据(地址) 对于ListView/Gridview的数据绑定, google提供了一些Adapter的模板, 自己也可以自定义一些个性化的显示样式,这样自定义一个Adapter并不复杂,本文自定义了一个显示两行Text的Adapter,使用这个Adapter为ListView绑定数据. 首先,创建一个有两个TextView组成的Layout - TwoRowLayout.axml,这个文件就相当于ListView中一个项目模板. 源

【 D3.js 选择集与数据详解 — 1 】 使用datum()绑定数据

选择集和数据的关系是 D3 最重要的基础,在[入门 - 第 7 章]时进行过些许讲解,对于要掌握好 D3 是远远不够的.故此开设一个新的分类,专门讨论选择集与数据的关系,包括数据绑定的使用和工作原理,update .enter.exit 的原理和使用方法等,接下来一段时间里会有多篇此类文章. D3 最大的特色就是能够将数据绑定到DOM上.使用select或selectAll选择元素之后,被选择的元素上是没有数据的.数据绑定就是使被选择元素里包含有数据.与此相关的函数有两个: datum():将指

Android train——ListView绑定ArrayAdapter、SimpleAdapter、SimpleCursorAdapter、BaseAdapter

ListView绑定ArrayAdapter res/layout/activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout

在aspx页动态加载ascx页面内容,给GridView控件绑定数据

在aspx页动态加载ascx页面内容 //加载ascx页面内容Control c1 = this.Page.LoadControl("WebUserControl1.ascx");//绑定到aspx页的PlaceHolder控件上PlaceHolder1.Controls.Add(c1); DataSet ds = SqlServerHelpr.GetDataSet("select * from dbo.Table_1");//给GridView控件绑定数据Grid