从sqlite的显示数据的ListView使用光标适配器 [英] show data from sqlite to listview using cursor adapter

查看:291
本文介绍了从sqlite的显示数据的ListView使用光标适配器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想提出在那里数据被保存在数据库中的应用程序。但是我没有使用游标适配器列表视图中显示的数据。不知道是什么code应写。请检查。

这是我的code:
MainActivity.java

 包com.example.employeedetailsnew;进口java.text.SimpleDateFormat的;
进口的java.util.Calendar;进口android.app.Activity;
进口android.app.ActionBar;
进口android.app.AlertDialog;
进口android.app.Fragment;
进口android.app.ProgressDialog;
进口android.content.DialogInterface;
进口android.content.Intent;
进口android.os.Bundle;
进口android.view.LayoutInflater;
进口android.view.Menu;
进口android.view.MenuItem;
进口android.view.View;
进口android.view.ViewGroup;
导入android.widget *。
进口android.os.Build;公共类MainActivity延伸活动{
        私人的EditText NME = NULL;
        私人的EditText NUM = NULL;
        私人EmployeeDatabase empObj;        @覆盖
        公共无效的onCreate(捆绑savedInstanceState){
            super.onCreate(savedInstanceState);
            的setContentView(R.layout.activity_main);
            NME =(EditText上)findViewById(R.id.name);
            NUM =(EditText上)findViewById(R.id.ageemp);
            按钮btnShowData =(按钮)findViewById(R.id.button1);              btnShowData.setOnClickListener(新Button.OnClickListener(){              @覆盖
              公共无效的onClick(视图v){                  onSaveClick();
              }});        }        公共无效onButtonClicked(查看视图){
                日历C = Calendar.getInstance();
                SimpleDateFormat的SDF =新的SimpleDateFormat(DD:MMMM:YYYY HH:MM:SS);
                串strDate = sdf.format(c.getTime());
                字符串的varName = nme.getText()的toString()。
                字符串varAge = num.getText()的toString()。                empObj =新EmployeeDatabase(getApplicationContext());
                empObj.insert(varName中,varAge,strDate);                AlertDialog alertDialog = NULL;
                alertDialog =新AlertDialog.Builder(MainActivity.this).create();
                alertDialog.setTitle(信息);
                alertDialog.setMessage(您已经注册);
                alertDialog.setCancelable(真);
                alertDialog.show();
                nme.setText();
                num.setText();        }        公共无效onSaveClick(){            意向意图=新意图(这一点,ShowData.class);
            startActivity(意向);        }        @覆盖
        公共布尔onCreateOptionsMenu(菜单菜单){            //充气菜单;如果是present这增加了项目操作栏。
            。getMenuInflater()膨胀(R.menu.main,菜单);
            返回true;
        }        @覆盖
        公共布尔onOptionsItemSelected(菜单项项){
            //处理动作栏项目点击这里。操作栏会
            //自动处理上点击主页/向上按钮,只要
            //你在AndroidManifest.xml中指定一个父活动。
            INT ID = item.getItemId();
            如果(ID == R.id.action_settings){
                返回true;
            }
            返回super.onOptionsItemSelected(项目);
        }    }

EmployeeDatabse.java

 包com.example.employeedetailsnew;进口android.content.ContentValues​​;
进口android.content.Context;
进口android.database.Cursor;
进口android.database.sqlite.SQLiteDatabase;
进口android.database.sqlite.SQLiteOpenHelper;公共类EmployeeDatabase扩展SQLiteOpenHelper {    EmployeeDatabase(上下文的背景下){
    超级(上下文中,empdb.db,空,3);    }@覆盖
公共无效的onCreate(SQLiteDatabase数据库)
{    //创建表在这里
    database.execSQL(
            CREATE TABLE employeedetailnew+
    (Name文本,年龄TEXT,时间TEXT)
                    );}
@覆盖
公共无效onUpgrade(SQLiteDatabase数据库,诠释oldVersion,诠释静态网页)
{
    database.execSQL(DROP TABLE IF EXISTS EMPLOYEEDETAILNEW);
    的onCreate(数据库);
//这里处理数据库模式升级
}公共光标getDetails()
{
    SQLiteDatabase分贝= getReadableDatabase();
    返回db.rawQuery(选择名称,从employeedetailnew时代,NULL);
}
公共无效插入(字符串名称,字符串年龄,字符串时间)
{
    长ROWID = 0;
    尝试{
    SQLiteDatabase分贝= getWritableDatabase();
    ContentValues​​ contentValues​​ =新ContentValues​​();
    contentValues​​.put(名,名);
    contentValues​​.put(时代,年龄);
    contentValues​​.put(时间,时间);
    ROWID = db.insert(employeedetailnew,空,contentValues​​);
    }赶上(例外五){
        e.printStackTrace();
    }
    最后{
        的System.out.println(rowid的是+ ROWID);
        的System.out.println(名称为+姓名);
        的System.out.println(年龄+时代);
        的System.out.println(时间是+时间);
    }
    //插入到数据库这里
}公共布尔deleteTitle(字符串名称)
{
    //删除不全code .. :(
    SQLiteDatabase分贝= getWritableDatabase();
    返回db.delete(employeedetailnew名称+=+名,NULL)> 0;
}
}

EmployeeDetailAdapter.java

 包com.example.employeedetailsnew;进口的java.util.ArrayList;进口android.content.Context;
进口android.database.Cursor;
进口android.support.v4.widget.CursorAdapter;
进口android.view.LayoutInflater;
进口android.view.View;
进口android.view.ViewGroup;
进口android.widget.BaseAdapter;
进口android.widget.TextView;公共类EmployeeDetailAdapter扩展的CursorAdapter{
    公共EmployeeDetailAdapter(上下文的背景下,光标C){
        超(背景下,C);
        // TODO自动生成构造函数存根
    }    @覆盖
    公众诠释的getCount(){
        // TODO自动生成方法存根
        返回0;
    }    @覆盖
    公共对象的getItem(INT位置){
        // TODO自动生成方法存根
        返回null;
    }    @覆盖
    众长getItemId(INT位置){
        // TODO自动生成方法存根
        返回0;
    }    @覆盖
    公共查看getView(INT索引,视图观点,父母的ViewGroup){
        // TODO自动生成方法存根
        如果(查看== NULL)
        {
            LayoutInflater充气= LayoutInflater.from(parent.getContext());
            鉴于= inflater.inflate(R.layout.shows_view,父母,假);
        }        EmployeeOther empDtl = times.get(指数);        TextView的nameTextView =(TextView中)view.findViewById(R.id.name1);
        nameTextView.setText(empDtl.getName());
        TextView的ageTextView =(TextView中)view.findViewById(R.id.age2);
        ageTextView.setText(empDtl.getAge());
        TextView的timeTextView =(TextView中)view.findViewById(R.id.time3);
        timeTextView.setText(empDtl.getTime());
        返回视图。
    }    @覆盖
    公共无效bindView(查看视图,上下文的背景下,光标光标){
        // TODO自动生成方法存根
        TextView的nameTextView =(TextView中)view.findViewById(R.id.name1);
        nameTextView.setText(cursor.getString(cursor.getColumnIndex(名称)))​​;        TextView的ageTextView =(TextView中)view.findViewById(R.id.name1);
        ageTextView.setText(cursor.getString(cursor.getColumnIndex(时代)));        TextView的timeTextView =(TextView中)view.findViewById(R.id.name1);
        timeTextView.setText(cursor.getString(cursor.getColumnIndex(时代)));
    }    @覆盖
    公共查看NewView的(上下文的背景下,光标光标的ViewGroup父){
        // TODO自动生成方法存根
         LayoutInflater充气= LayoutInflater.from(parent.getContext());
         查看查看= inflater.inflate(R.layout.shows_list,父母,假);
         返回视图。
    }}

ShowData.java

 包com.example.employeedetailsnew;进口的java.util.ArrayList;
进口的java.util.HashMap;
进口的java.util.List;
进口的java.util.Map;进口android.app.ListActivity;
进口android.database.Cursor;
进口android.os.Bundle;
进口android.util.Log;
进口android.widget.ListView;
进口android.widget.SimpleAdapter;公共类ShowData扩展ListActivity
{
    私人EmployeeDatabase databaseHelper;
    公共无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        EmployeeDatabase empClick =新EmployeeDatabase(getApplicationContext());
        光标光标= empClick.getDetails();
        如果(cursor.moveToFirst())
        {
            做
            {
                字符串名称= cursor.getString(1);
                串笔记= cursor.getString(2);
                字符串时间= cursor.getString(3);
                //东西必须写在这里
                }而(cursor.moveToNext());
            }
        如果(!cursor.isClosed())
        {
            cursor.close();
        }        }
    }

activity_main.xml中

 <的RelativeLayout的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    的xmlns:工具=htt​​p://schemas.android.com/tool​​s
    机器人:layout_width =match_parent
    机器人:layout_height =match_parent    机器人:paddingBottom会=@扪/ activity_vertical_margin
    机器人:paddingLeft =@扪/ activity_horizo​​ntal_margin
    机器人:paddingRight =@扪/ activity_horizo​​ntal_margin
    机器人:paddingTop =@扪/ activity_vertical_margin
    工具:上下文=$ com.example.employeedetailsnew.MainActivity PlaceholderFragment>    <的EditText
        机器人:ID =@ + ID /名称
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignLeft =@ + ID / empname
        机器人:layout_below =@ + ID / empname
        机器人:layout_marginTop =19dp
        机器人:EMS =10
        安卓的inputType =textPersonName>        < requestFocus的/>
    < /&的EditText GT;    <的TextView
        机器人:ID =@ + ID / textView1
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignLeft =@ + ID /子
        机器人:layout_below =@ + ID /子
        机器人:layout_marginTop =24dp/>    <的TextView
        机器人:ID =@ + ID / textView2
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignLeft =@ + ID / textView1
        机器人:layout_below =@ + ID / textView1/>    <的TextView
        机器人:ID =@ + ID / empname
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignParentLeft =真
        机器人:layout_alignParentTop =真
        机器人:layout_marginLeft =46dp
        机器人:layout_marginTop =27dp        机器人:文字=@字符串/ name_of_the_employee/>    <的TextView
        机器人:ID =@ + ID /时代
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignLeft =@ + ID /名称
        机器人:layout_below =@ + ID /名称
        机器人:layout_marginTop =16DP        机器人:文字=@字符串/ age_of_the_employee/>    <的EditText
        机器人:ID =@ + ID / ageemp
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignLeft =@ + ID /时代
        机器人:layout_below =@ + ID /时代
        机器人:EMS =10
        安卓的inputType =numberSigned/>    <按钮
        机器人:ID =@ + ID /子
        机器人:layout_width =match_parent
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignRight =@ + ID /按钮1
        机器人:layout_centerVertical =真
        安卓的onClick =onButtonClicked
        机器人:文字=@字符串/子/>    <按钮
        机器人:ID =@ + ID /按钮1
        机器人:layout_width =match_parent
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignTop =@ + ID / textView1
        机器人:layout_centerHorizo​​ntal =真
        机器人:文字=@字符串/ show_data/>
  < / RelativeLayout的>

shows_list.xml

 <?XML版本=1.0编码=UTF-8&GT?;
< LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:layout_width =match_parent
    机器人:layout_height =match_parent
    机器人:方向=垂直>    < ListView控件
        机器人:ID =@ + ID / list_view
        机器人:layout_width =match_parent
        机器人:layout_height =WRAP_CONTENT>
    < /&的ListView GT;< / LinearLayout中>

shows_view.xml

 <?XML版本=1.0编码=UTF-8&GT?;
< LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:layout_width =match_parent
    机器人:layout_height =match_parent
    机器人:方向=垂直>    <的TextView
        机器人:ID =@ + ID /名1
        机器人:layout_width =FILL_PARENT
        机器人:layout_height =WRAP_CONTENT
        机器人:文字=TextView的/>    <的TextView
        机器人:ID =@ + ID / AGE2
        机器人:layout_width =FILL_PARENT
        机器人:layout_height =WRAP_CONTENT
        机器人:文字=TextView的/>    <的TextView
        机器人:ID =@ + ID /时间3
        机器人:layout_width =FILL_PARENT
        机器人:layout_height =WRAP_CONTENT
        机器人:文字=TextView的/>< / LinearLayout中>


解决方案

修改 getDetails() EmployeeDatabase 与低于code

 公共光标getDetails()
{
    SQLiteDatabase分贝= getReadableDatabase();
    返回db.rawQuery(选择ROWID _id,姓名,年龄,从employeedetailnew时间,NULL);
}

和变化 ShowData.java的 的onCreate()如下,

  @覆盖
公共无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    EmployeeDatabase empClick =新EmployeeDatabase(getApplicationContext());
    光标光标= empClick.getDetails();
    如果(指针!= NULL)
        getListView()。setAdapter(
            新android.support.v4.widget.SimpleCursorAdapter(EmptyClass.this,R.layout.shows_view,光标,新的String [] {
                    姓名,年龄,时间
            },新的INT [] {R.id.name1,R.id.age2,R.id.time3},0));
}

和办理 SimpleCursorAdapter 这个例子

i am making a application where data is being saved in the database. but i am lacking in displaying the data in the list view using cursor adapter. don't know what code should be written. please check.

here is my code: MainActivity.java

package com.example.employeedetailsnew;

import java.text.SimpleDateFormat;
import java.util.Calendar;

import android.app.Activity;
import android.app.ActionBar;
import android.app.AlertDialog;
import android.app.Fragment;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.*;
import android.os.Build;

public class MainActivity extends Activity {


        private EditText nme = null;
        private EditText num = null;
        private EmployeeDatabase empObj;

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            nme = (EditText) findViewById(R.id.name);
            num = (EditText) findViewById(R.id.ageemp);
            Button btnShowData = (Button) findViewById(R.id.button1);

              btnShowData.setOnClickListener(new Button.OnClickListener() {

              @Override 
              public void onClick(View v) {

                  onSaveClick();


              } });



        }

        public void onButtonClicked(View view) {
                Calendar c = Calendar.getInstance();
                SimpleDateFormat sdf = new SimpleDateFormat("dd:MMMM:yyyy HH:mm:ss a");
                String strDate = sdf.format(c.getTime());
                String varName = nme.getText().toString();
                String varAge = num.getText().toString();

                empObj = new EmployeeDatabase(getApplicationContext());
                empObj.insert(varName,varAge,strDate);

                AlertDialog alertDialog = null;
                alertDialog = new AlertDialog.Builder(MainActivity.this).create();
                alertDialog.setTitle("Message");
                alertDialog.setMessage("You have been Registered");
                alertDialog.setCancelable(true);
                alertDialog.show();
                nme.setText("");
                num.setText("");



        }

        public void onSaveClick(){

            Intent intent = new Intent(this, ShowData.class);
            startActivity(intent);

        }

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {

            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }

        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // Handle action bar item clicks here. The action bar will
            // automatically handle clicks on the Home/Up button, so long
            // as you specify a parent activity in AndroidManifest.xml.
            int id = item.getItemId();
            if (id == R.id.action_settings) {
                return true;
            }
            return super.onOptionsItemSelected(item);
        }

    }

EmployeeDatabse.java

package com.example.employeedetailsnew;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class EmployeeDatabase extends SQLiteOpenHelper{

    EmployeeDatabase (Context context) {
    super(context, "empdb.db", null,3);

    }



@Override
public void onCreate(SQLiteDatabase database)
{

    // create your table here
    database.execSQL(
            "create table employeedetailnew" +
    "(name TEXT , age TEXT, time TEXT)"
                    );



}
@Override
public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion)
{
    database.execSQL("DROP TABLE IF EXISTS EMPLOYEEDETAILNEW");
    onCreate(database);
// handle database schema upgrades in here  
}

public Cursor getDetails()
{
    SQLiteDatabase db = getReadableDatabase();
    return db.rawQuery("select name, age from employeedetailnew", null);
}
public void insert(String name, String age, String time)
{
    long rowId = 0;
    try{
    SQLiteDatabase db = getWritableDatabase();
    ContentValues contentValues = new ContentValues(); 
    contentValues.put("name", name);
    contentValues.put("age", age);
    contentValues.put("time", time);
    rowId = db.insert("employeedetailnew", null, contentValues);


    }catch(Exception e){
        e.printStackTrace();
    }
    finally{
        System.out.println("The rowId is "+rowId);
        System.out.println("Name is "+name);
        System.out.println("Age is "+age);
        System.out.println("Time is "+time);
    }


    // insert into database here
}

public boolean deleteTitle(String name) 
{
    // incomplete delete code..:(
    SQLiteDatabase db = getWritableDatabase();
    return db.delete("employeedetailnew", name + "=" + name, null) > 0;
}
}

EmployeeDetailAdapter.java

package com.example.employeedetailsnew;



import java.util.ArrayList;

import android.content.Context;
import android.database.Cursor;
import android.support.v4.widget.CursorAdapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

public class EmployeeDetailAdapter extends CursorAdapter

{


    public EmployeeDetailAdapter(Context context, Cursor c) {
        super(context, c);
        // TODO Auto-generated constructor stub
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public View getView(int index, View view, ViewGroup parent) {
        // TODO Auto-generated method stub
        if (view == null)
        {
            LayoutInflater inflater = LayoutInflater.from(parent.getContext());
            view = inflater.inflate(R.layout.shows_view, parent, false);
        }

        EmployeeOther empDtl = times.get(index);

        TextView nameTextView = (TextView) view.findViewById(R.id.name1);
        nameTextView.setText(empDtl.getName());


        TextView ageTextView = (TextView) view.findViewById(R.id.age2);
        ageTextView.setText(empDtl.getAge());


        TextView timeTextView = (TextView) view.findViewById(R.id.time3);
        timeTextView.setText(empDtl.getTime());
        return view;
    }

    @Override
    public void bindView(View view, Context context, Cursor cursor) {
        // TODO Auto-generated method stub
        TextView nameTextView = (TextView) view.findViewById(R.id.name1);
        nameTextView.setText(cursor.getString(cursor.getColumnIndex("name")));

        TextView ageTextView = (TextView) view.findViewById(R.id.name1);
        ageTextView.setText(cursor.getString(cursor.getColumnIndex("age")));

        TextView timeTextView = (TextView) view.findViewById(R.id.name1);
        timeTextView.setText(cursor.getString(cursor.getColumnIndex("time")));
    }

    @Override
    public View newView(Context context, Cursor cursor, ViewGroup parent) {
        // TODO Auto-generated method stub
         LayoutInflater inflater = LayoutInflater.from (parent.getContext());
         View view = inflater.inflate(R.layout.shows_list, parent, false);
         return view; 
    }

}

ShowData.java

package com.example.employeedetailsnew;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.ListActivity;
import android.database.Cursor;
import android.os.Bundle;
import android.util.Log;
import android.widget.ListView;
import android.widget.SimpleAdapter;

public class ShowData extends ListActivity


{
    private EmployeeDatabase databaseHelper;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);




        EmployeeDatabase empClick = new EmployeeDatabase(getApplicationContext());
        Cursor cursor = empClick.getDetails();
        if (cursor.moveToFirst()) 
        { 
            do 
            { 
                String name = cursor.getString(1); 
                String notes = cursor.getString(2);
                String time = cursor.getString(3);
                // something must be written here
                } while (cursor.moveToNext());
            }
        if (!cursor.isClosed()) 
        { 
            cursor.close();
        }

        }
    }

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.employeedetailsnew.MainActivity$PlaceholderFragment" >

    <EditText
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/empname"
        android:layout_below="@+id/empname"
        android:layout_marginTop="19dp"
        android:ems="10"
        android:inputType="textPersonName" >

        <requestFocus />
    </EditText>

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/sub"
        android:layout_below="@+id/sub"
        android:layout_marginTop="24dp" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_below="@+id/textView1" />

    <TextView
        android:id="@+id/empname"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="46dp"
        android:layout_marginTop="27dp"

        android:text="@string/name_of_the_employee" />

    <TextView
        android:id="@+id/age"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/name"
        android:layout_below="@+id/name"
        android:layout_marginTop="16dp"

        android:text="@string/age_of_the_employee" />

    <EditText
        android:id="@+id/ageemp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/age"
        android:layout_below="@+id/age"
        android:ems="10"
        android:inputType="numberSigned" />

    <Button
        android:id="@+id/sub"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/button1"
        android:layout_centerVertical="true"
        android:onClick="onButtonClicked"
        android:text="@string/sub" />

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/textView1"
        android:layout_centerHorizontal="true"
        android:text="@string/show_data" />


  </RelativeLayout>

shows_list.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/list_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

shows_view.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/name1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="TextView" />

    <TextView
        android:id="@+id/age2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="TextView" />

    <TextView
        android:id="@+id/time3"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="TextView" />

</LinearLayout>

解决方案

Change getDetails() of EmployeeDatabase with below code

public Cursor getDetails()
{
    SQLiteDatabase db = getReadableDatabase();
    return db.rawQuery("select rowid _id,name, age,time from employeedetailnew", null);
}

and change ShowData.java's onCreate() as below,

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    EmployeeDatabase empClick = new EmployeeDatabase(getApplicationContext());
    Cursor cursor = empClick.getDetails();
    if(cursor !=null)
        getListView().setAdapter(
            new android.support.v4.widget.SimpleCursorAdapter(EmptyClass.this, R.layout.shows_view, cursor, new String[] {
                    "name", "age", "time"
            }, new int[] {R.id.name1,R.id.age2,R.id.time3}, 0));
}

and go through SimpleCursorAdapter and this example

这篇关于从sqlite的显示数据的ListView使用光标适配器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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