gpt4 book ai didi

java - 如何在 fragment 上查看数据库中的数据

转载 作者:行者123 更新时间:2023-11-30 11:24:52 26 4
gpt4 key购买 nike

<分区>

我试图在 fragment 上查看数据库中的数据,我使用 TableRow 来查看数据。

我的代码设置数据库:

public class SqliteManager extends Activity {

public static final int VERSI_DATABASE= 1;
public static final String NAMA_DATABASE = "dbCrudSqlite";
public static final String NAMA_TABEL = "tbAgenda";

public static final String FIELD_ID = "_id";
public static final int POSISI_ID = 0;
public static final String FIELD_JUDUL = "judul";
public static final int POSISI_JUDUL = 1;
public static final String FIELD_DESKRIPSI = "deskripsi";
public static final int POSISI_DESKRIPSI = 2;
public static final String FIELD_WAKTU = "waktu";
public static final int POSISI_WAKTU = 3;

public static final String[] FIELD_TABEL ={ SqliteManager.FIELD_ID, SqliteManager.FIELD_JUDUL, SqliteManager.FIELD_DESKRIPSI, SqliteManager.FIELD_WAKTU };

private Context crudContext;
private SQLiteDatabase crudDatabase;
private SqliteManagerHelper crudHelper;

private static class SqliteManagerHelper extends SQLiteOpenHelper {
private static final String BUAT_TABEL =
"create table " + NAMA_TABEL + " (" +
SqliteManager.FIELD_ID + " integer primary key autoincrement, " +
SqliteManager.FIELD_JUDUL + " text not null, " +
SqliteManager.FIELD_DESKRIPSI + " text not null," +
SqliteManager.FIELD_WAKTU + " text not null " +
");";

public SqliteManagerHelper(Context context) {
super(context, NAMA_DATABASE, null, VERSI_DATABASE);
}

@Override
public void onCreate(SQLiteDatabase database) {
database.execSQL(BUAT_TABEL);
}

@Override
public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {}

}


public void generateData(SQLiteDatabase database){
ContentValues cv=new ContentValues();
cv.put(FIELD_ID, "3");
cv.put(FIELD_JUDUL, "Abang");
cv.put(FIELD_DESKRIPSI, "Abang");
cv.put(FIELD_WAKTU, "Merah");
database.insert(NAMA_TABEL,null,cv);

cv.put(FIELD_ID, "2");
cv.put(FIELD_JUDUL, "Opo");
cv.put(FIELD_DESKRIPSI, "Opo");
cv.put(FIELD_WAKTU, "Apa");
database.insert(NAMA_TABEL,null,cv);
}

public SqliteManager(Context context) {
crudContext = context;
}

public void bukaKoneksi() throws SQLException {
crudHelper = new SqliteManagerHelper(crudContext);
crudDatabase = crudHelper.getWritableDatabase();
generateData(crudDatabase);
}

public void tutupKoneksi() {
crudHelper.close();
crudHelper = null;
crudDatabase = null;
}

public long insertData(ContentValues values) {
return crudDatabase.insert(NAMA_TABEL, null, values);
}

public boolean updateData(long rowId, ContentValues values) {
return crudDatabase.update(NAMA_TABEL, values,
SqliteManager.FIELD_ID + "=" + rowId, null) > 0;
}

public boolean hapusData(long rowId) {
return crudDatabase.delete(NAMA_TABEL,
SqliteManager.FIELD_ID + "=" + rowId, null) > 0;
}

public Cursor bacaData() {
return crudDatabase.query(NAMA_TABEL,FIELD_TABEL,null, null, null, null,SqliteManager.FIELD_JUDUL + " DESC");
}

public Cursor bacaDataTerseleksi(long rowId) throws SQLException {
Cursor cursor = crudDatabase.query(true, NAMA_TABEL,FIELD_TABEL,FIELD_ID + "=" + rowId,null, null, null, null, null);
cursor.moveToFirst();
return cursor;
}

public ContentValues ambilData(String tempat, String lat, String lng) {
ContentValues values = new ContentValues();
values.put(SqliteManager.FIELD_JUDUL, tempat);
values.put(SqliteManager.FIELD_DESKRIPSI, lat);
values.put(SqliteManager.FIELD_WAKTU, lng);
return values;
}

public ArrayList<ArrayList<Object>> ambilSemuaBaris(){
ArrayList<ArrayList<Object>> dataArray = new ArrayList<ArrayList<Object>>();
Cursor cur;
try
{
cur = crudDatabase.query(NAMA_TABEL, new String[]{FIELD_ID,FIELD_JUDUL,FIELD_DESKRIPSI}, null, null, null, null, null);
cur.moveToFirst();
if (!cur.isAfterLast())
{
do {
ArrayList<Object> dataList = new ArrayList<Object>();
dataList.add(cur.getLong(0));
dataList.add(cur.getString(1));
dataList.add(cur.getString(2));
dataArray.add(dataList);
}while (cur.moveToNext());
}
}catch (Exception e)
{
e.printStackTrace();
Log.e("DB ERROR",e.toString());
}
return dataArray;
}
}

我想查看fragment上的数据:

public class JawaIndo extends Fragment {
private SqliteManager sqliteDB;
private Activity activity;
TextView bhsjawa,bhsindo;
Button addBtn;
TableLayout tabel4data;

public JawaIndo(){}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

View rootView = inflater.inflate(R.layout.jawaindo, container, false);
sqliteDB = new SqliteManager(getActivity());
sqliteDB.bukaKoneksi();

activity = new Activity();

tabel4data = (TableLayout) activity.findViewById(R.id.tabel_data);
bhsjawa = (TextView) activity.findViewById(R.id.nama_id);
bhsindo = (TextView) activity.findViewById(R.id.hobi_id);
updateTable();

return rootView;
}

protected void updateTable() {
while (tabel4data.getChildCount()>1){
tabel4data.removeViewAt(1);
}
ArrayList<ArrayList<Object>> data = sqliteDB.ambilSemuaBaris();
for (int posisi = 0; posisi < data.size(); posisi++) {
TableRow tabelBaris = new TableRow(getActivity());
ArrayList<Object> baris = data.get(posisi);

TextView idTxt = new TextView(getActivity());
idTxt.setText(baris.get(0).toString());
tabelBaris.addView(idTxt);

TextView namaTxt = new TextView(getActivity());
namaTxt.setText(baris.get(1).toString());
tabelBaris.addView(namaTxt);

TextView hobiTxt = new TextView(getActivity());
hobiTxt.setText(baris.get(2).toString());
tabelBaris.addView(hobiTxt);
tabel4data.addView(tabelBaris);
}
}
}

当我在类 JawaIndo 上编写此代码时出错:

    activity = new Activity();
tabel4data = (TableLayout) activity.findViewById(R.id.tabel_data);
bhsjawa = (TextView) activity.findViewById(R.id.nama_id);
bhsindo = (TextView) activity.findViewById(R.id.hobi_id);
updateTable();

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com