私は Android を初めて使用します。Android アプリケーション用に sqlite データベースを作成しました。ListView ではなく固定ヘッダーのテーブル形式を使用してデータを表示したいと考えています。以下のコードは問題ありません。Cursor Adapter を使用する必要がありますか?これを制御するには、どのような方法がありますか? 何か案は?リンクを送ってください(例) ありがとうございます。
固定ヘッダーを使用して最初の列に単純なテーブル形式を作成するにはどうすればよいですか? このような。
logdate | logtime | batlevel | batcharging | signalstrength | wifi | useraction |
---------------------------------------------------------------------------------
data | data | data | data | data | data | data |
data | data | data | data | data | data | data |
data | data | data | data | data | data | data |
data | data | data | data | data | data | data |
...
...
-- これが私の SQLiteOpenHelper クラスです
package com.example.activitylifecycle;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
public class MySQLiteHelper extends SQLiteOpenHelper {
//Attributes name
public static final String _ID = "_id";
public static final String LOGDATE = "Logdate";
public static final String LOGTIME = "Logtime";
public static final String BATLEVEL = "Batlevel";
public static final String BATCHARGING = "Batcharging";
public static final String SIGSTRENGTH = "Sigstrength";
public static final String WIFI = "Wifi";
public static final String USERACTION = "Useraction";
//database creation//
public static final String TAG = "DBAdapter";
private static final String DATABASE_NAME = "dbase";
public static final String DATABASE_TABLE = "applog";
private static final int DATABASE_VERSION = 1;
//table create..
private static final String DATABASE_CREATE = "create table applog (_id integer primary key autoincrement,"
+ "Logdate text null,"
+ "Logtime text null,"
+ "Batlevel text null,"
+ "Batcharging text null,"
+ "Sigstrength text null,"
+ "Wifi text null,"
+ "Useraction text null);";
public MySQLiteHelper(Context context) { super(context, DATABASE_NAME, null,
DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase database) {
database.execSQL(DATABASE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w(MySQLiteHelper.class.getName(),
"Upgrading database from version " + oldVersion + " to "
+ newVersion + ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
onCreate(db);
}
}
-- これが私の Datasource クラスです
package com.example.activitylifecycle;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
public class AppLogDataSource {
//Database Fields
private SQLiteDatabase database;
private MySQLiteHelper dbHelper;
private String[] allColumns = {MySQLiteHelper._ID, MySQLiteHelper.LOGDATE,
MySQLiteHelper.LOGTIME, MySQLiteHelper.BATLEVEL, MySQLiteHelper.BATCHARGING,
MySQLiteHelper.SIGSTRENGTH, MySQLiteHelper.WIFI, MySQLiteHelper.USERACTION};
public AppLogDataSource(Context context) {
dbHelper = new MySQLiteHelper(context);
}
public void open() throws SQLException {
database = dbHelper.getWritableDatabase();
}
public void close() {
dbHelper.close();
}
//Insert
public void createApplog(String Logdate, String Logtime, String Batlevel, String
Batcharging, String Sigstrength, String Wifi, String Useraction){
ContentValues values = new ContentValues();
values.put(MySQLiteHelper.LOGDATE, Logdate);
values.put(MySQLiteHelper.LOGTIME, Logtime);
values.put(MySQLiteHelper.BATLEVEL, Batlevel);
values.put(MySQLiteHelper.BATCHARGING, Batcharging);
values.put(MySQLiteHelper.SIGSTRENGTH, Sigstrength);
values.put(MySQLiteHelper.WIFI, Wifi);
values.put(MySQLiteHelper.USERACTION, Useraction);
long insertId = database.insert(MySQLiteHelper.DATABASE_TABLE, null,values);
Cursor cursor = database.query(MySQLiteHelper.DATABASE_TABLE,allColumns,
MySQLiteHelper._ID+ " = " + insertId, null, null, null, null);
cursor.moveToFirst();
cursor.close();
}
public Cursor getLogs() {
Cursor mCursor = database.query(MySQLiteHelper.DATABASE_TABLE,allColumns, null, null,
null, null, null);
mCursor.moveToFirst();
while(!mCursor.isAfterLast()){
mCursor.moveToNext();
}
return mCursor;
}
}