如何在android中创建多列的列表视图

时间:2013-12-31 05:20:14

标签: android

我是一个新的android程序员如何在android中创建列表视图,在列表视图中有三列。第一列和第二列显示字符串值和第三列显示复选框。在上面的复选框按钮,当我选择那些按钮然后所有都是自动选择的。请帮帮我?请在这里写任何一个代码。提前谢谢。并且从sqlite数据库中检索数据我将粘贴我的sqlitedatabase类。

标题## StudentListDatabaseHelper

package com.example.dao;


import java.util.ArrayList;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.example.dto.DriverSelectedRouteArrayList;

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 StudentListDatabaseHelper extends SQLiteOpenHelper
{
    SQLiteDatabase db;

//  ParseDriverSelectedRouteId parseDriverSelectedRouteId = new ParseDriverSelectedRouteId();

    //database version
    private final static int DATABASE_VERSION = 3;

    //table name
    private final static String TABLE_NAME = "studentlist";

    //table column
    private final String KEY_ID = "_id";
    private final String ROUTE_ID  = "route_id";
    private final String KEY_FIRST_NAME = "first_name";
    private final String KEY_MIDDLE_NAME = "middle_name";
    private final String KEY_LAST_NAME = "last_name";
    private final String KEY_PH_NO = "phone_number";

    DriverSelectedRouteArrayList driverSelectedRouteArrayList = new DriverSelectedRouteArrayList();

//  list object create for student list
    List<DriverSelectedRouteArrayList> studentList = new ArrayList<DriverSelectedRouteArrayList>();
    //constructor
    public StudentListDatabaseHelper(Context context) 
    {

        super(context, "sbtsystem.db", null, DATABASE_VERSION);
        //SQLiteDatabase simpleDb = this.

        db = context.openOrCreateDatabase("sbtsystem.db", Context.MODE_PRIVATE,null);

//      Log.d("constructor for database handler====>", "database handler");
    }

    @Override
    public void onCreate(SQLiteDatabase db) 
    {

        //Log.d("on create method==========================>>>>>", "sql helper class");
        String  CREATE_STUDENT_LIST_TABLE = "CREATE TABLE IF NOT EXISTS "+ TABLE_NAME +"("+
                                            KEY_ID+" INTEGER PRIMARY KEY AUTOINCREMENT,"+   
                                            ROUTE_ID+" INTEGER,"+
                                            KEY_FIRST_NAME+" TEXT,"+ 
                                            KEY_MIDDLE_NAME+" TEXT,"+ 
                                            KEY_LAST_NAME+ " TEXT,"+ KEY_PH_NO +" TEXT"+")";
                    db.execSQL(CREATE_STUDENT_LIST_TABLE);  
                    //Log.d("on create database helper calss", "database helper class on create");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
    {
         db.execSQL("DROP TABLE IF EXISTS "+TABLE_NAME);
        Log.d("on upgrade method in sqlite database helper class=====>", "before on crete method call in onUpgrade method");
         this.onCreate(db);

    }

    public void insertRecord(DriverSelectedRouteArrayList driverSelectedRouteArrayList) throws JSONException
    {
        this.onUpgrade(db, 0, 2);
        db = this.getWritableDatabase();
        //get list size from driverSelectedRouteArraylist
        int listSize = driverSelectedRouteArrayList.getStudentArrayList().size();

//      Log.d("list size in database helper class", listSize+"");
        String respose = driverSelectedRouteArrayList.getStudentArrayList().toString();


        JSONArray jsonArray = new JSONArray(respose);

            for(int i=0;i<jsonArray.length();i++)
            {

                JSONObject jsonObject = jsonArray.getJSONObject(i);
                ContentValues values = new ContentValues();

                String routeId = jsonObject.get("route_id").toString();
                values.put(ROUTE_ID, routeId);

                String firstName = jsonObject.get("first_name").toString();
                values.put(KEY_FIRST_NAME, firstName);

                String middle_name = jsonObject.get("middle_name").toString();
                values.put(KEY_MIDDLE_NAME, middle_name);

                String last_name = jsonObject.get("last_name").toString();
                values.put(KEY_LAST_NAME,last_name);

                String phone_number = jsonObject.get("phone_number").toString();
                values.put(KEY_PH_NO, phone_number);

                try{
                        //onUpgrade(db, 1, 2);
//                      Log.d("end insertRecord loop route id", values.getAsString("route_id")+"end insert record loop route id");
                        db.insert(TABLE_NAME, null, values);
                        selectRecord();

//                      Log.d("insert record:: :: :: :: ::", driverSelectedRouteArrayList.getFirst_name());
                        //db.close();
                        //Log.d("insert query", query+"");

                    }catch(Exception e)
                    {
                        e.printStackTrace();
                    }
                        Log.d("inser======0----->", TABLE_NAME+"");
                        //  db.close();
            }
        }
    public <T> List<DriverSelectedRouteArrayList> selectRecord() throws JSONException
    {
        ArrayList<T> studentArrayList = new ArrayList<T>();

        String selectQuery = "SELECT * FROM "+TABLE_NAME;
//      Log.d("select query=-=-=-=-=-=-=-=-=> ", selectQuery);
        //db = this.getReadableDatabase();
        db = this.getWritableDatabase();
        Cursor curser = db.rawQuery(selectQuery, null);
        //Log.d("select all student list=====>", );
        if(curser.moveToFirst())
        {
            do{ 
                    //json object create for stored data
                    JSONObject jsonObjectForStudenntList = new JSONObject();

                    /*  int _id = (curser.getInt(curser.getColumnIndex(KEY_ID)));
                      jsonObjectForStudenntList.put("_id", _id);*/

                    int _id = driverSelectedRouteArrayList.set_id(curser.getInt(curser.getColumnIndex(KEY_ID)));
                    jsonObjectForStudenntList.put("_id", _id);
                    Log.d("sqlite database values_id",""+_id);

                    //Log.d("values from database handler class _id:::::::::-->", (curser.getInt(curser.getColumnIndex(KEY_ID)))+"=====values");
                    String firstName = driverSelectedRouteArrayList.setFirst_name(curser.getString(curser.getColumnIndex(KEY_FIRST_NAME)));
                    jsonObjectForStudenntList.put("firstName", firstName);

                Log.d("first Name=======>>>>>", firstName+"first Name");

                    String middleName = driverSelectedRouteArrayList.setMiddle_name(curser.getString(curser.getColumnIndex(KEY_MIDDLE_NAME)));
                    jsonObjectForStudenntList.put("middleName", middleName);

                    String lastName = driverSelectedRouteArrayList.setLast_name(curser.getString(curser.getColumnIndex(KEY_LAST_NAME)));
                    jsonObjectForStudenntList.put("lastName", lastName);

                    String phoneNumber = driverSelectedRouteArrayList.setPhone_number(curser.getString(curser.getColumnIndex(KEY_PH_NO)));
                    jsonObjectForStudenntList.put("phoneNumber", phoneNumber);


                    studentList.add(driverSelectedRouteArrayList);

                    studentArrayList.add((T) jsonObjectForStudenntList.toString());

                }while(curser.moveToNext());

            driverSelectedRouteArrayList.setDriverSelectedRouteArrayList((List<DriverSelectedRouteArrayList>) studentArrayList);

            //driverSelectedRouteArrayList.setStudentListInSqliteDatabse((ArrayList<String>) studentList);

        //Log.d("all select values from sqlite database******",""+studentArrayList);
        }
        Log.d("driver list==>","nnnnnnnnnnnnn\n"+""+driverSelectedRouteArrayList.getDriverSelectedRouteArrayList());
        return studentList;
    }
}

1 个答案:

答案 0 :(得分:1)

如果要在ListView中显示多个列,则需要创建自定义适配器 This is tutorial create adapter in Listview

相关问题