java - 在我的主要 Activity 中将 sqlite 数据库中的值显示到 ListView 。安卓

标签 java android sqlite

我正在通过视频教程学习 Android 开发。

使用教程中的想法。我创建了自己的类、数据库处理程序 (Dbhandler.java) 文件和 (kovil.java) 文件。这些文件运行良好。

我想捕获数据库中的所有值并将其显示在 ListView 中。在我的 mainactivity.xml 中

任何人都可以帮我做到这一点吗?谢谢..

这是我的代码..

Dbhandler.java 文件

        package lk.adspace.jaffnadb;

        import java.util.ArrayList;


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

        import android.database.sqlite.SQLiteOpenHelper;
        import android.util.Log;

        public class Dbhandler extends SQLiteOpenHelper  {


            private static final int DATABASE_VERSION = 1;

            // Database Name
            private static final String DATABASE_NAME = "jaffnatempletest";

            // Temple table name
            private static final String TABLE_TEMPLE = "templ";


            // Contacts Table Columns names
            private static final String KEY_ID = "id";
            private static final String KEY_TMPNAME = "temple_name";
            private static final String KEY_TMPTYPE = "temple_type";
            private static final String KEY_LATITUDE = "latitude";
            private static final String KEY_LONGITUDE = "longitude";
            private static final String KEY_IMGNAME = "image_name";
            private static final String KEY_YEARBUILD = "year_build";
            private static final String KEY_ADDRESS = "address";
            private static final String KEY_CITY = "city";
            private static final String KEY_EMAIL = "email";
            private static final String KEY_WEB = "website";
            private static final String KEY_TEL1 = "telephone1";
            private static final String KEY_TEL2 = "telephone2";
            private static final String KEY_DESCRI = "Description";
            private final ArrayList<kovil> temple_list = new ArrayList<kovil>();


            public Dbhandler (Context context) {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
            }



            // Creating Tables
            @Override
            public void onCreate(SQLiteDatabase db) {
            String CREATE_TEMPLE_TABLE = "CREATE TABLE " + TABLE_TEMPLE + "("
                + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL," + KEY_TMPNAME + " TEXT," + KEY_TMPTYPE + " TEXT," + KEY_LATITUDE + " TEXT," + KEY_LONGITUDE + " TEXT," + KEY_IMGNAME + " TEXT,"
                + KEY_YEARBUILD + " TEXT," + KEY_ADDRESS + " TEXT," + KEY_CITY + " TEXT," + KEY_EMAIL + " TEXT," + KEY_WEB + " TEXT," + KEY_TEL1 + " TEXT," + KEY_TEL2 + " TEXT,"
                + KEY_DESCRI + " TEXT" + ")";
            db.execSQL(CREATE_TEMPLE_TABLE);
            }


            // Upgrading database
            @Override
            public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            // Drop older table if existed
            db.execSQL("DROP TABLE IF EXISTS " + TABLE_TEMPLE);

            // Create tables again
            onCreate(db);
            }



            // Adding new temple
            public void Add_Temple(kovil Kovil) {
            SQLiteDatabase db = this.getWritableDatabase();
            ContentValues values = new ContentValues();

            values.put(KEY_TMPNAME, Kovil.gettemplename()); 
            values.put(KEY_TMPTYPE, Kovil.gettempletype()); 
            values.put(KEY_LATITUDE, Kovil.getlatitude()); 
            values.put(KEY_LONGITUDE, Kovil.getlongitude()); 
            values.put(KEY_IMGNAME, Kovil.getimage_name()); 
            values.put(KEY_YEARBUILD, Kovil.getyear_build()); 
            values.put(KEY_ADDRESS, Kovil.getaddress()); 
            values.put(KEY_CITY, Kovil.getcity()); 
            values.put(KEY_EMAIL, Kovil.getemail()); 
            values.put(KEY_WEB, Kovil.getwebsite()); 
            values.put(KEY_TEL1, Kovil.gettelephone1()); 
            values.put(KEY_TEL2, Kovil.gettelephone2());
            values.put(KEY_DESCRI, Kovil.getDescription());

            // Inserting Row
            db.insert(TABLE_TEMPLE, null, values);
            db.close(); // Closing database connection
            }






            // Getting single contact
            kovil Get_Temple(int id) {
            SQLiteDatabase db = this.getReadableDatabase();

            Cursor cursor = db.query(TABLE_TEMPLE, new String[] { KEY_ID,
                    KEY_TMPNAME, KEY_TMPTYPE, KEY_LATITUDE, KEY_LONGITUDE, KEY_IMGNAME, KEY_YEARBUILD, KEY_ADDRESS, KEY_CITY, KEY_EMAIL, KEY_EMAIL, KEY_WEB, KEY_TEL1, KEY_TEL2, KEY_DESCRI }, KEY_ID + "=?",
                new String[] { String.valueOf(id) }, null, null, null, null);
            if (cursor != null)
                cursor.moveToFirst();

            kovil Kovil = new kovil(Integer.parseInt(cursor.getString(0)),
                cursor.getString(1), cursor.getString(2), cursor.getString(3), cursor.getString(4), cursor.getString(5), cursor.getString(6), cursor.getString(7), cursor.getString(8), cursor.getString(9), cursor.getString(10), cursor.getString(11), cursor.getString(12), cursor.getString(13));
            // return contact
            cursor.close();
            db.close();

            return Kovil;
            }





            // Getting All Contacts
            public ArrayList<kovil> Get_Temple() {
            try {
                temple_list.clear();

                // Select All Query
                String selectQuery = "SELECT  * FROM " + TABLE_TEMPLE;

                SQLiteDatabase db = this.getWritableDatabase();
                Cursor cursor = db.rawQuery(selectQuery, null);

                // looping through all rows and adding to list
                if (cursor.moveToFirst()) {
                do {
                    kovil Kovil = new kovil();
                    Kovil.setID(Integer.parseInt(cursor.getString(0)));
                    Kovil.settemplename(cursor.getString(1)); 
                    Kovil.settempletype(cursor.getString(2)); 
                    Kovil.setlatitude(cursor.getString(3)); 
                    Kovil.setlongitude(cursor.getString(4)); 
                    Kovil.setimage_name(cursor.getString(5)); 
                    Kovil.setyear_build(cursor.getString(6)); 
                    Kovil.setaddress(cursor.getString(7)); 
                    Kovil.setcity(cursor.getString(8)); 
                    Kovil.setemail(cursor.getString(9)); 
                    Kovil.setwebsite(cursor.getString(10)); 
                    Kovil.settelephone1(cursor.getString(11)); 
                    Kovil.settelephone2(cursor.getString(12));
                    Kovil.setDescription(cursor.getString(13));



                    // Adding contact to list
                    temple_list.add(Kovil);
                } while (cursor.moveToNext());
                }

                // return contact list
                cursor.close();
                db.close();
                return temple_list;
            } catch (Exception e) {
                // TODO: handle exception
                Log.e("all_temples", "" + e);
            }

            return temple_list;
            }



        }

Kovil.java 文件

        package lk.adspace.jaffnadb;

        public class kovil {

            //public variables
            public int _id;
            public String _temple_name;
            public String _temple_type;
            public String _latitude;
            public String _longitude;
            public String _image_name;
            public String _year_build;
            public String _address;
            public String _city;
            public String _email;
            public String _website;
            public String _telephone1;
            public String _telephone2;
            public String _Description;

            //empty constructor
            public kovil (){

            }


            // int id, String temple_name, String temple_type, String latitude,  String longitude, String image_name, String year_build, String address, String city, String email, String website, String telephone1, String telephone2,  String Description


            public kovil(int id, String temple_name, String temple_type, String latitude,  String longitude, String image_name, String year_build, String address, 
                    String city, String email, String website, String telephone1, String telephone2,  String Description) {
                // TODO Auto-generated constructor stub



                  this._id= id;
                  this._temple_name=temple_name;
                  this._temple_type=temple_type;
                  this._latitude=latitude;
                  this._longitude=longitude;
                  this._image_name=image_name;
                  this._year_build=year_build;
                  this._address=address;
                  this._city=city;
                  this._email=email;
                  this._website=website;
                  this._telephone1=telephone1;
                  this._telephone2=telephone2;
                  this._Description=Description;

            }


                    public int getID() {
                    return this._id;
                    }


                    public void setID(int id) {
                    this._id = id;
                    }


                    public String gettemplename() {
                    return this._temple_name;
                    }


                    public void settemplename(String temple_name) {
                    this._temple_name=temple_name;
                    }

                    public String gettempletype() {
                    return this._temple_type;
                    }


                    public void settempletype(String temple_type) {
                    this._temple_type=temple_type;
                    }

                    public String getlatitude() {
                    return this._latitude;
                    }


                    public void setlatitude(String latitude) {
                        this._latitude=latitude;
                    }

                    public String getlongitude() {
                    return this._longitude;
                    }


                    public void setlongitude(String longitude) {
                        this._longitude=longitude;
                    }


                    public String getimage_name() {
                    return this._image_name;
                    }


                    public void setimage_name(String image_name) {
                        this._image_name=image_name;
                    }

                    public String getyear_build() {
                    return this._year_build;
                    }


                    public void setyear_build(String year_build) {
                        this._year_build=year_build;
                    }


                    public String getaddress() {
                    return this._address;
                    }


                    public void setaddress(String address) {
                        this._address=address;
                    }

                    public String getcity() {
                    return this._city;
                    }


                    public void setcity(String city) {
                        this._city=city;
                    }


                    public String getemail() {
                    return this._email;
                    }


                    public void setemail(String email) {
                        this._email=email;
                    }


                    public String getwebsite() {
                    return this._website;
                    }


                    public void setwebsite(String website) {
                        this._website=website;
                    }


                    public String gettelephone1() {
                    return this._telephone1;
                    }


                    public void settelephone1(String telephone1) {
                        this._telephone1=telephone1;
                    }

                    public String gettelephone2() {
                    return this._telephone2;
                    }


                    public void settelephone2(String telephone2) {
                        this._telephone2=telephone2;
                    }


                    public String getDescription() {
                    return this._Description;
                    }


                    public void setDescription(String Description) {
                        this._Description=Description;
                    }


        }

MainActivity.java 文件

    package lk.adspace.jaffnadb;

    import java.util.ArrayList;





    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.widget.ListView;
    import android.widget.TextView;

    public class MainActivity extends Activity {


        ArrayList<kovil> temple_data = new ArrayList<kovil>();

        ListView temple_listview;

                    Dbhandler dbhand = new Dbhandler(this); 



                    @Override
                    protected void onCreate(Bundle savedInstanceState) {
                        super.onCreate(savedInstanceState);
                        setContentView(R.layout.activity_main);


                        kovil insertData = new kovil("temple_name", "temple_type", "latitude",  "longitude", "image_name", "year_build", "address", 
                                "city", "email", "website", "telephone1", "telephone2",  "Description");
                            Dbhandler dbhand = new Dbhandler(this); 
                            dbhand .Add_Temple(insertData );


                            kovil insertData2 = new kovil("temple_name", "temple_type", "latitude",  "longitude", "image_name", "year_build", "address", 
                                    "city", "email", "website", "telephone1", "telephone2",  "Description");

                                dbhand .Add_Temple(insertData2 );

                                int count =dbhand .Get_Total_Temple();

                             TextView textView = (TextView) findViewById(R.id.count);
                             textView.setText(Integer.toString(count));


                             // i want to display all the values in a list over here.






                    }

                    @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;
                    }

                }

主要 Activity .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=".MainActivity" >

<TextView
    android:id="@+id/count"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:text="TextView"
    android:textSize="50dp" />

<ListView
    android:id="@+id/list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/count"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/count" >

</ListView>

 </RelativeLayout>

最佳答案

首先,您需要创建一个布局文件来表示您希望如何显示每个列表项。

然后您需要扩展 BaseAdapter类,以便您可以决定如何显示每个 Kovil 类。

构建完成后,您可以调用 setAdapter在您的 ListView 上。

关于java - 在我的主要 Activity 中将 sqlite 数据库中的值显示到 ListView 。安卓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21495888/

相关文章:

java - 使用 ImageJ 进行图像分割

java - 代理 "throw exception"

java - 如何在散点图X,Y轴中间添加圆圈

java - 开发人员真的使用 vim 在 Windows 操作系统上编写代码 (Java) 吗?

android - 如何从 Flex Mobile 中的另一个应用程序调用一个应用程序

android - 没有可用的互联网连接时如何添加自定义错误页面

android - 房间 (AAC) : [SQLITE_ERROR] SQL error or missing database (near "group": syntax error)

node.js - Nodejs Sequelize sqlite3 没有这样的表

java - 在android中打开SQLite数据库文件

node.js - 如何在 Electron 中安装sqlite3?