使用SQLite的Andr​​oid的ListView [英] Android ListView using SQLite

查看:132
本文介绍了使用SQLite的Andr​​oid的ListView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图片段类中填充的ListView。我想查询,每一个学生,他有很多待办事项的秒。当用户登录我要找回他的所有待办事项的他独特的补充,而且是属于他的唯一的数据将显示。

下面是我的控件的笔记来检索所有笔记

 私人DatabaseHelper帮助;
私人SQLiteDatabase分贝;    公共光标listNotes(){
        光标C = db.query(help.NOTE_TABLE,新的String [] {help.COLUMN_TITLE,help.COLUMN_BODY,help.COLUMN_DATE},help.COLUMN_ID +=?,新的String [] {将String.valueOf(help.NOTES_ID )},NULL,NULL,NULL);
        如果(C!= NULL){
            c.moveToFirst();
        }        返回℃;
     }

我databasehelper是,只有创建表的类。为什么当我试图获取数据是空指针,这里是我的populateList方法。

 公共无效populateList(){
    光标光标= execute.listNotes();    //映射领域光标到文本的意见
    的String []栏=新的String [] {help.COLUMN_TITLE,help.COLUMN_BODY,help.COLUMN_DATE};
    INT [] =文字INT新[] {R.id.item_title,R.id.item_body,R.id.item_date};
    适配器=新SimpleCursorAdapter(getActivity(),R.layout.list_layout,光标,字段,文本,0);    //调用列表对象实例
    ListView控件=(ListView控件)getView()findViewById(android.R.id.list)。
    listView.setAdapter(适配器);
}

LogCat中

 显示java.lang.NullPointerException
        在com.example.app.Notes.populateList(Notes.java:49)        在android.support.v4.app.Fragment.performCreateView(Fragment.java:1786)
        在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947)
        在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)
        在android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
        在android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
        在android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:486)
        在android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
        在android.support.v4.view.ViewPager.populate(ViewPager.java:1073)
        在android.support.v4.view.ViewPager.populate(ViewPager.java:919)
        在android.support.v4.view.ViewPager $ 3.run(ViewPager.java:249)
        在android.view.Choreographer $ CallbackRecord.run(Choreographer.java:725)
        在android.view.Choreographer.doCallbacks(Choreographer.java:555)
        在android.view.Choreographer.doFrame(Choreographer.java:524)
        在android.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer.java:711)
        在android.os.Handler.handleCallback(Handler.java:615)
        在android.os.Handler.dispatchMessage(Handler.java:92)
        在android.os.Looper.loop(Looper.java:137)
        在android.app.ActivityThread.main(ActivityThread.java:4745)
        在java.lang.reflect.Method.invokeNative(本机方法)
        在java.lang.reflect.Method.invoke(Method.java:511)
        在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:786)
        在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
        在dalvik.system.NativeStart.main(本机方法)


解决方案

您在您的参考 listNotes 函数有一个错误。 执行没有一个叫listNotes的功能,所以这就是正在恢复为

您需要引用其中listNotes出现的实际类,如 Controls.listNotes();

I am trying to populate listview within a fragment class. I am trying to query that for every one student he has many toDo's s. When the user is logged on I want to retrieve all his ToDo's he uniquely added and only data that belongs to him will be shown.

Here is my Controls for notes to retrieve all notes

private DatabaseHelper help;
private SQLiteDatabase db;

    public Cursor listNotes() {
        Cursor c = db.query(help.NOTE_TABLE, new String[]{help.COLUMN_TITLE,help.COLUMN_BODY, help.COLUMN_DATE}, help.COLUMN_ID + " = ?", new String[]{String.valueOf(help.NOTES_ID)} , null, null, null);
        if(c != null) {
            c.moveToFirst();
        }

        return c;
     }

My databasehelper is the class that only creates tables. Why is it when I try to get the data it is a null pointer, here is my populateList method.

    public void populateList(){
    Cursor cursor = execute.listNotes();

    //Mapping the fields cursor to text views
    String[] fields = new String[]{help.COLUMN_TITLE,help.COLUMN_BODY, help.COLUMN_DATE};
    int [] text = new int[] {R.id.item_title,R.id.item_body, R.id.item_date};
    adapter = new SimpleCursorAdapter(getActivity(),R.layout.list_layout,cursor, fields, text,0);

    //Calling list object instance
    listView = (ListView) getView().findViewById(android.R.id.list);
    listView.setAdapter(adapter);
}

LogCat

  java.lang.NullPointerException
        at com.example.app.Notes.populateList(Notes.java:49)

        at android.support.v4.app.Fragment.performCreateView(Fragment.java:1786)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)
        at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
        at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
        at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:486)
        at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
        at android.support.v4.view.ViewPager.populate(ViewPager.java:1073)
        at android.support.v4.view.ViewPager.populate(ViewPager.java:919)
        at android.support.v4.view.ViewPager$3.run(ViewPager.java:249)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
        at android.view.Choreographer.doCallbacks(Choreographer.java:555)
        at android.view.Choreographer.doFrame(Choreographer.java:524)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
        at android.os.Handler.handleCallback(Handler.java:615)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:4745)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
        at dalvik.system.NativeStart.main(Native Method)

解决方案

You have an error in your reference to the listNotes function. execute doesn't have a function called listNotes, so that is what is returning as null

You need to reference the actual class in which listNotes appears, e.g. Controls.listNotes();

这篇关于使用SQLite的Andr​​oid的ListView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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