Java Android Sqlite使用来自JNI的字符串更新最后一条记录
我有一个应用程序,可以在实时视频中测量彩色圆圈之间的距离。我可以从JNI获得字符串。现在,我想将该字符串保存到我的数据库中,但我无法使其工作 这是我的db助手类:Java Android Sqlite使用来自JNI的字符串更新最后一条记录,java,android,sqlite,Java,Android,Sqlite,我有一个应用程序,可以在实时视频中测量彩色圆圈之间的距离。我可以从JNI获得字符串。现在,我想将该字符串保存到我的数据库中,但我无法使其工作 这是我的db助手类: public class DatabaseHelperUBack extends SQLiteOpenHelper { public static final String DATABASE_NAME="ubackrecords.db"; public static final String TABLE_NAME="
public class DatabaseHelperUBack extends SQLiteOpenHelper {
public static final String DATABASE_NAME="ubackrecords.db";
public static final String TABLE_NAME="records_table";
public static final String COL_0="ID";
public static final String COL_1="UBack";
public DatabaseHelperUBack(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table " + TABLE_NAME + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, UBack TEXT) ");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXIST "+TABLE_NAME);
}
//public boolean insertData(String name, String date_today, String sleeve, String shoulder, String body_length, String cross_back, String bw_length, String bn_cuff, String inseam, String outseam){
public boolean insertData(String uback){
SQLiteDatabase db=this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL_1,uback);
long result = db.insert(TABLE_NAME, null, contentValues);
if(result == -1)
return false;
else
return true;
}
public boolean updateData(String id, String uback){
SQLiteDatabase db=this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL_0,id);
contentValues.put(COL_1,uback);
db.update(TABLE_NAME, contentValues, "ID = ?", new String[] { id } );
return true;
}
public Cursor getAllData(){
SQLiteDatabase db=this.getWritableDatabase();
Cursor res = db.rawQuery("select * from "+TABLE_NAME,null);
return res;
}
}
我让它在下面的类上工作,但我只让它在表的ID=1时工作。我不知道如何检索表的最后一行,因此它将是要更新/替换的行(因为它是实时摄影机提要)
我希望根据本页内容编辑您的答案:我希望根据本页内容编辑您的答案:
public class UBackTrackViewer extends SampleViewBase{
DatabaseHelperUBack myDb;
private Context mContext;
private int mFrameSize;
private Bitmap mBitmap;
private int[] mRGBA;
public UBackTrackViewer(Context context) {
super(context);
this.mContext = context;
myDb = new DatabaseHelperUBack(mContext);
}
public String messageMe2(String text) {
System.out.println(text);
myDb.updateData("1", text);
return text;
}
@Override
public boolean onTouchEvent(MotionEvent event){
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
myDb.insertData("");
}
static {
System.loadLibrary("objtrack_opencv_jnii_uback");
}
@Override
protected void onPreviewStared(int previewWidtd, int previewHeight) {
mFrameSize = previewWidtd * previewHeight;
mRGBA = new int[mFrameSize];
mBitmap = Bitmap.createBitmap(previewWidtd, previewHeight, Bitmap.Config.ARGB_8888);
}
@Override
protected void onPreviewStopped() {
if(mBitmap != null) {
mBitmap.recycle();
mBitmap = null;
}
mRGBA = null;
}
@Override
protected Bitmap processFrame(byte[] data) {
int[] rgba = mRGBA;
UBackObjectTrack(getFrameWidth(), getFrameHeight(), data, rgba, LowerActivity.bShowTresholded);
//returnUback3(getFrameWidth(), getFrameHeight(), data, rgba, LowerActivity.bShowTresholded);
// returnUback(getFrameWidth(), getFrameHeight(), data, rgba, LowerActivity.bShowTresholded);
//returnUback2(getFrameWidth(), getFrameHeight(), data, rgba, LowerActivity.bShowTresholded);
Bitmap bmp = mBitmap;
bmp.setPixels(rgba, 0/* offset */, getFrameWidth() /* stride */, 0, 0, getFrameWidth(), getFrameHeight());
return bmp;
}
//public native void returnUback(int width, int height, byte yuv[], int[] rgba, boolean debug);
// public native void returnUback2(int width, int height, byte yuv[], int[] rgba, boolean debug);
//public native void returnUback3(int width, int height, byte yuv[], int[] rgba, boolean debug);
public native void UBackObjectTrack(int width, int height, byte yuv[], int[] rgba, boolean debug);
public native String UBackObjectTrack();
static {
System.loadLibrary("objtrack_opencv_jnii_uback");
}
}