读取数据库的值显示到ListView上

============问题描述============

我定义了一个了一个查询数据库的方法(selectAllRecrod),将查询到的值保存在一个List<String>中,使用单元测试,这个方法可行,能执行出结果来。ListView我用的是ArrayAdapter适配器,自己写数据可以用,但是一使用selectAllRecrod方法返回的List就报错,空指针异常。我想知道如果要查询数据库,是用的适配器是不是必须为SimpleCursorAdapter,我想应该不是吧。

java代码如下:

public class TowFragment extends Fragment

{

	private ListView listview = null;

	private MyDao myDao = null;

	private List<String> listData = null;

	@Override

	public View onCreateView(LayoutInflater inflater, ViewGroup container,

			Bundle savedInstanceState)

	{

		View view = inflater.inflate(R.layout.tow, container, false);

		listview = (ListView) view.findViewById(R.id.listview);

		myDao = new MyDao(getActivity());

		listData = myDao.selectedAllRecord();

		listview.setAdapter(new ArrayAdapter<String>(getActivity(),

				android.R.layout.simple_expandable_list_item_1, listData));

		return view;

	}

}

报错的Log如下:

06-21 07:48:17.486: E/AndroidRuntime(16659): FATAL EXCEPTION: main

06-21 07:48:17.486: E/AndroidRuntime(16659): java.lang.NullPointerException

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:394)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.widget.AbsListView.obtainView(AbsListView.java:2159)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.widget.ListView.measureHeightOfChildren(ListView.java:1246)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.widget.ListView.onMeasure(ListView.java:1158)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.view.View.measure(View.java:15518)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.view.View.measure(View.java:15518)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.view.View.measure(View.java:15518)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1389)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.view.View.measure(View.java:15518)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.view.View.measure(View.java:15518)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.widget.LinearLayout.measureVertical(LinearLayout.java:847)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.view.View.measure(View.java:15518)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2176)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.view.View.measure(View.java:15518)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1874)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1089)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1265)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:989)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4351)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.view.Choreographer.doCallbacks(Choreographer.java:562)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.view.Choreographer.doFrame(Choreographer.java:532)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.os.Handler.handleCallback(Handler.java:725)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.os.Handler.dispatchMessage(Handler.java:92)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.os.Looper.loop(Looper.java:137)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at android.app.ActivityThread.main(ActivityThread.java:5041)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at java.lang.reflect.Method.invokeNative(Native Method)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at java.lang.reflect.Method.invoke(Method.java:511)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)

06-21 07:48:17.486: E/AndroidRuntime(16659):         at dalvik.system.NativeStart.main(Native Method)

06-21 07:48:21.626: E/InputDispatcher(296): channel ‘41055180 com.ccniit.zhh.main/com.ccniit.zhh.main.MainActivity (server)‘ ~ Channel is unrecoverably broken and will be disposed!

============解决方案1============

问题并不在你贴出的代码层面啊

需要跟踪调试才行呢

时间: 2024-10-03 22:37:53

读取数据库的值显示到ListView上的相关文章

让收藏、点赞的即时状态的交互正确的显示在ListView上

通过上面的两张图片能够清楚的看到:收藏按钮(五角星).点赞按钮(赞的数目): 在做项目的时候,这个时很常见的.先讲解一下我的需求: 对于收藏:首先,这个具有收藏按钮交互的页面在整个项目中大约有13+个:若算上,选项标签那就多的没法数了,也就是说页数基本上是不确定的:当点击该收藏按钮,会被点亮:再次点击则恢复原状态.中间在每次点击,操作成功之后会向服务器交互更新后台的收藏状态数据,便于下次进入时候保持收藏或者未收藏的状态. 对于点赞:基本上和收藏是一样的,只是多了赞的数量,要随着点击交互儿即时的改

数据库日期时间显示在页面上格式错误的解决方案

做项目过程中肯定会碰到这样一个问题:在数据库中存的是date或datetime类型的值,从数据库里取出来遍历到页面上显示的是long类型或是GTM类型的日期时间.对于这个问题,经过研究之后有以下结论: 1.hibernate不会出现这样的问题,而mabatis则会出现这个问题. 2.数据库使用date类型的在页面上会显示long类型日期时间,使用datetime类型的在页面上会显示GTM类型日期时间. 因为我用的是mysql数据库,其他的数据库没测试过,所以也不知道其他数据库是怎样的情况,这里就

C API--linux上c语言读取数据库内容(mysql)

要想知道怎么通过c语言操作数据库,必须要了解这几个结构体的含义,这里只是简单说一下如果想要了解的更深入可以到网上搜一下 C API数据类型 1.MYSQL结构代表一个数据库连接的句柄,包含有关服务器的连接状态的信息,几乎所有的函数均使用到他.要连接MySQL,必须建立MYSQL实例,通过mysql_init初始化方能开始连接. 2.MYSQL_RES结果代表返回的查询结果(select,show等).也将查询的返回的信息成为"结果集".在c的API里对应的就是MYSQL_RES了,从数

JSP 实现 之 读取数据库显示图片

用JSP从数据库中读取图片并显示在网页上 环境mysql+tomcat: <1>先在mysql下建立如下的table. 并insert图像. mysql.sql文件如下: CREATE TABLE photo ( photo_no int(6) unsigned NOT NULL auto_increment, image blob, PRIMARY KEY (`photo_no`) ) <2>把show.jsp放在tomcat的任意目录下. show.jsp作用:从数据库中读出b

android 读取手机通讯录并显示listview

脉脉中注册时有一个,我已开启权限: 这个原理: 1.如果通讯录为空,脉脉就不让你往下进行, 2.如果没有开启权限,脉脉就不让你往下进行, 3.如果开启权限且通讯录为空,脉脉就不让你往下进行, 4.如果开启权限且通讯录不为空,脉脉才能让你往下进行. 读取通讯录权限 <!-- 读取联系人权限 --> <uses-permission android:name="android.permission.READ_CONTACTS" /> <!-- 拨打电话权限 -

[oldboy-django][2深入django]老师管理 -- form表单如何生成多选框标签,多选框的默认值显示,以及多选框数据插入到数据库,多选框数据更改到数据库

1 form表单如何生成多选框(包含了多选框可选择内容) - Form设置班级输入框为 select多选 - 多选 class TeacherForm(Form): name = fields.CharField(max_length=16, widget=widgets.TextInput(attrs={'class': 'form-control'}) ) cls = fields.MultipleChoiceField( choices=models.Classes.objects.val

读取数据库数据,并将数据整合成3D饼图在jsp中显示

首先我将生成饼图的方法独立写成一个PieChar.java类,详细代码如下:(数据库需要自己建,如有需要的话) 1 import java.io.IOException; 2 import java.sql.SQLException; 3 import org.jfree.chart.ChartFactory; 4 import org.jfree.chart.JFreeChart; 5 import org.jfree.data.general.DefaultPieDataset; 6 7 p

JAVA基础-输入输出:1.编写TextRw.java的Java应用程序,程序完成的功能是:首先向TextRw.txt中写入自己的学号和姓名,读取TextRw.txt中信息并将其显示在屏幕上。

1.编写TextRw.java的Java应用程序,程序完成的功能是:首先向TextRw.txt中写入自己的学号和姓名,读取TextRw.txt中信息并将其显示在屏幕上. package Test03; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOExceptio

百度地图的使用之获取数据库表中信息的坐标点显示在地图上

//通用封装好的js: var map = new BMap.Map("container"); //建树Map实例 var point = new BMap.Point(103.976032, 33.845509); // 建树点坐标 map.centerAndZoom(point, 6); // 初始化地图,设置中心点坐标和地图级别. //地图事件设置函数: map.enableDragging(); //启用地图拖拽事件,默认启用(可不写) map.enableScrollWhe