Android 在游标数据中添加值

Android 在游标数据中添加值,android,database,listview,Android,Database,Listview,我正在开发一个应用程序,我需要把我的闹钟时间放在这样的列表视图中 12:45 13:11 我的问题是,我知道为什么会这样 我只有一个这样的科尔曼 45 十一, 我想从数据库中获取所有行,而不仅仅是一个列项,如何从数据库中获取所有行?有什么简单的解决办法吗 包装radiofm.arabel import android.content.ContentValues; import android.content.Context; import android.database.Cursor;

我正在开发一个应用程序,我需要把我的闹钟时间放在这样的列表视图中

  • 12:45
  • 13:11
我的问题是,我知道为什么会这样

我只有一个这样的科尔曼

  • 45
  • 十一,
我想从数据库中获取所有行,而不仅仅是一个列项,如何从数据库中获取所有行?有什么简单的解决办法吗

包装radiofm.arabel

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 DatabaseHelper extends SQLiteOpenHelper {

    private static final String TAG = "DatabaseHelper";

    private static final String TABLE_NAME = "people_table";
    private static final String COL1 = "_id";
    private static final String COL2 = "Hour";
    private static final String COL3 = "Symbol";
    private static final String COL4 = "Minutes";



    public DatabaseHelper(Context context) {
        super(context, TABLE_NAME, null, 1);
    }
    @Override
    public void onCreate(SQLiteDatabase db) {

        String createTable = "CREATE TABLE " + TABLE_NAME + " (" +

                COL1 + " INTEGER PRIMARY KEY AUTOINCREMENT, " +

                COL2 + " TEXT, " +

                COL3 + " TEXT, " +

                COL4 + " TEXT "  +

                ");";

        db.execSQL(createTable);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int i, int i1) {
        db.execSQL("DROP IF TABLE EXISTS " + TABLE_NAME);
        onCreate(db);
    }

    public boolean addData(String item1,String item2,String item3) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(COL2, item1);
        contentValues.put(COL3, item2);
        contentValues.put(COL4, item3);

        Log.d(TAG, "addData: Adding " + item1 + " to " + TABLE_NAME);


        long result = db.insert(TABLE_NAME, null, contentValues);

        //if date as inserted incorrectly it will return -1
        if (result == -1) {
            return false;
        } else {
            return true;
        }
    }


    public Cursor getListContents(){
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor data = db.rawQuery("SELECT Hour, Symbol, Minutes FROM " + TABLE_NAME, null);
        return data;
    }


}
大宗报价

package radiofm.arabel;
导入android.content.Intent;
导入android.database.Cursor;
导入android.os.Bundle;
导入android.support.design.widget.FloatingActionButton;
导入android.support.design.widget.Snackbar;
导入android.support.v7.app.AppActivity;
导入android.support.v7.widget.Toolbar;
导入android.view.view;
导入android.widget.ArrayAdapter;
导入android.widget.Button;
导入android.widget.ListAdapter;
导入android.widget.ListView;
导入android.widget.Toast;
导入java.util.ArrayList;
公共类添加报警扩展了AppCompatActivity{
ListView listalarm;
数据库助手myDB;
按钮1;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u add\u alarm);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
设置支持操作栏(工具栏);
listalarm=(ListView)findViewById(R.id.listalarm);
myDB=新数据库助手(此);
button1=(按钮)findViewById(R.id.addalarm);
button1.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Intent Intent=新意图(view.getContext(),Alarm.class);
view.getContext().startActivity(Intent);}
});
//从数据库填充ArrayList,然后查看它
ArrayList theList=新的ArrayList();
游标数据=myDB.getListContents();
if(data.getCount()==0){
Toast.makeText(这是“此列表中没有内容!”,Toast.LENGTH_LONG.show();
}否则{
while(data.moveToNext()){
add(data.getString(2));
ListAdapter ListAdapter=new ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,theList);
listalarm.setAdapter(listAdapter);
}
}
}
}

您可能错过了数据库中的
Hour
列:

更改:

if(data.getCount() == 0){
        Toast.makeText(this, "There are no contents in this list!",Toast.LENGTH_LONG).show();
    }else{
        while(data.moveToNext()){
            theList.add(data.getString(2));
            ListAdapter listAdapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,theList);
            listalarm.setAdapter(listAdapter);
        }
    }
if(data.getCount()==0){
Toast.makeText(这是“此列表中没有内容!”,Toast.LENGTH_LONG.show();
}否则{
while(data.moveToNext()){
add(data.getString(2));
ListAdapter ListAdapter=new ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,theList);
listalarm.setAdapter(listAdapter);
}
}
致:

if(data.getCount()==0){
Toast.makeText(这是“此列表中没有内容!”,Toast.LENGTH_LONG.show();
}否则{
while(data.moveToNext()){
添加(data.getString(0)+:“+data.getString(2));
}
ListAdapter ListAdapter=new ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,theList);
listalarm.setAdapter(listAdapter);
}

您可能错过了数据库中的
Hour
列:

更改:

if(data.getCount() == 0){
        Toast.makeText(this, "There are no contents in this list!",Toast.LENGTH_LONG).show();
    }else{
        while(data.moveToNext()){
            theList.add(data.getString(2));
            ListAdapter listAdapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,theList);
            listalarm.setAdapter(listAdapter);
        }
    }
if(data.getCount()==0){
Toast.makeText(这是“此列表中没有内容!”,Toast.LENGTH_LONG.show();
}否则{
while(data.moveToNext()){
add(data.getString(2));
ListAdapter ListAdapter=new ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,theList);
listalarm.setAdapter(listAdapter);
}
}
致:

if(data.getCount()==0){
Toast.makeText(这是“此列表中没有内容!”,Toast.LENGTH_LONG.show();
}否则{
while(data.moveToNext()){
添加(data.getString(0)+:“+data.getString(2));
}
ListAdapter ListAdapter=new ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,theList);
listalarm.setAdapter(listAdapter);
}
这里是从列索引2中获取数据并将其放入列表中。本栏显示的是会议记录如果你也想要小时,你必须从
光标
中获取时间。记住,计算机只做你让它做的事情

或者,您可以使用
光标或适配器
。您很可能需要自己创建一个自定义适配器类,以便从游标获取值并正确显示它们

这里是从列索引2中获取数据并将其放入列表中。本栏显示的是会议记录如果你也想要小时,你必须从
光标
中获取时间。记住,计算机只做你让它做的事情


或者,您可以使用
光标或适配器
。您很可能需要自己创建一个自定义适配器类,以便从游标中获取值并正确显示它们。

尝试这样从游标中获取值并相应地使用

String col1_value=data.getString(data.getColumnIndex(COL1));
String col2_value=data.getString(data.getColumnIndex(COL2));
String col3_value=data.getString(data.getColumnIndex(COL3));
并在添加列表中的所有值后通知您的适配器,如下所示

 Cursor data = myDB.getListContents();
        if(data.getCount() == 0){
            Toast.makeText(this, "There are no contents in this list!",Toast.LENGTH_LONG).show();
        }else{
            while(data.moveToNext()){
                theList.add(data.getString(data.getColumnIndex(COL2)));

            }
 ListAdapter listAdapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,theList);
                listalarm.setAdapter(listAdapter);
        }
cursordata=myDB.getListContents();
if(data.getCount()==0){
Toast.makeText(这是“此列表中没有内容!”,Toast.LENGTH_LONG.show();
}否则{
while(data.moveToNext()){
add(data.getString(data.getColumnIndex(COL2));
}
ListAdapter ListAdapter=new ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,theList);
listalarm.setAdapter(listAdapter);
}

尝试这样从游标中提取,并相应地使用

String col1_value=data.getString(data.getColumnIndex(COL1));
String col2_value=data.getString(data.getColumnIndex(COL2));
String col3_value=data.getString(data.getColumnIndex(COL3));
并在添加列表中的所有值后通知您的适配器,如下所示

 Cursor data = myDB.getListContents();
        if(data.getCount() == 0){
            Toast.makeText(this, "There are no contents in this list!",Toast.LENGTH_LONG).show();
        }else{
            while(data.moveToNext()){
                theList.add(data.getString(data.getColumnIndex(COL2)));

            }
 ListAdapter listAdapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,theList);
                listalarm.setAdapter(listAdapter);
        }
Curso