2017-12-06 1 views

答えて

0

感謝してますねえ、私は、そのためのソリューションを持って::

Databaseクラス "DatabaseHelper.kt" を作成します::

class DatabaseHelper(context: Context) : SQLiteOpenHelper(context, DATABASE_NAME, null, 1) { 

override fun onCreate(db: SQLiteDatabase) { 

    db.execSQL("Create Table $TABLE_NAME(ID INTEGER PRIMARY KEY AUTOINCREMENT,Category_img BLOB)") 

} 

override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) { 
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME) 
    onCreate(db) 
} 


fun insertData(Category_img: ByteArray): Boolean { 
    val db = writableDatabase 
    val cv = ContentValues() 
    cv.put(CAL_NO1, Category_img) 


    val result = db.insert(TABLE_NAME, null, cv) 

    return if (result .equals(-1)) 
     false 
    else 
     true 


} 


fun getdata(): ByteArray { 
    val db = writableDatabase 
    val res = db.rawQuery("select * from " + TABLE_NAME, null) 

    if (res.moveToFirst()) { 
     do { 
      return res.getBlob(0) 
     } while (res.moveToNext()) 
    } 
    return byteArrayOf() 
} 

companion object { 
    private val DATABASE_NAME = "user.db" 
    private val TABLE_NAME = "tbl_user" 
    private val CAL_NO1 = "Category_img" 
} 

} 

これをアクセスしたい場所からコード化してください::

class MainActivity : AppCompatActivity() { 
    var dbSq: DatabaseHelper= DatabaseHelper(this); 



override fun onCreate(savedInstanceState: Bundle?) { 
    super.onCreate(savedInstanceState) 
    setContentView(R.layout.activity_main) 



    val cameraIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE) 
    startActivityForResult(cameraIntent, 101) 


} 

public override fun onActivityResult(requestcode: Int, resultcode: Int, intent: Intent) { 
    super.onActivityResult(requestcode, resultcode, intent) 
    if (resultcode == Activity.RESULT_OK) { 
     if (requestcode == 101) { 


      val photo = intent.extras!!.get("data") as Bitmap 
      val stream = ByteArrayOutputStream() 
      photo.compress(Bitmap.CompressFormat.PNG, 100, stream) 
      val byteArray = stream.toByteArray() 

      Log.d("check",dbSq.insertData(byteArray).toString().plus(" ")); 

     } 
    } 
} 

あなたのためにうまくいくと思います。

ご連絡いただきありがとうございます。

EDITED:

"DatabaseHelper.kt" ::

class DatabaseHelper(context: Context) : SQLiteOpenHelper(context, DATABASE_NAME, null, 1) { 

override fun onCreate(db: SQLiteDatabase) { 

    db.execSQL("Create Table $TABLE_NAME(ID INTEGER PRIMARY KEY AUTOINCREMENT,Category_img Text)") 

} 

override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) { 
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME) 
    onCreate(db) 
} 


fun insertData(Category_img: String): Boolean { 
    val db = writableDatabase 
    val cv = ContentValues() 
    cv.put(CAL_NO1, Category_img) 


    val result = db.insert(TABLE_NAME, null, cv) 

    return if (result .equals(-1)) 
     false 
    else 
     true 


} 




companion object { 
    private val DATABASE_NAME = "user.db" 
    private val TABLE_NAME = "tbl_user" 
    private val CAL_NO1 = "Category_img" 
} 

} 

、あなたがカメラにアクセスする場所からのコードにこれを行う::

class MainActivity : AppCompatActivity() { 

var dbSq: DatabaseHelper= DatabaseHelper(this); 

internal var output: File? = null 

override fun onCreate(savedInstanceState: Bundle?) { 
    super.onCreate(savedInstanceState) 
    setContentView(R.layout.activity_main) 



    val cameraIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE) 

    val dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM) 

    val date = Date() 
    output = File(dir, "CheckImage " + date.toString()+".jpeg") 

    startActivityForResult(cameraIntent, 101) 


} 

public override fun onActivityResult(requestcode: Int, resultcode: Int, intent: Intent) { 
    super.onActivityResult(requestcode, resultcode, intent) 
    if (resultcode == Activity.RESULT_OK) { 
     if (requestcode == 101) { 





      Log.d("check",dbSq.insertData(output!!.absolutePath).toString().plus(" ")); 

     } 
    } 
} 
} 
+0

感謝返信用に、写真をデバイスに保存し、ファイル名をデータベースに保存することはできますか電子、またはそれをデータベースに保存するのが最良の解決策ですか? –

+0

あなたはこれをデバイスとその名前でデータベースに保存します。これは私が思う最良の解決策です。私の答えはあなたの要求にちょうど合っています。それもデバイスで保存し、データベースで名前を付ける場合はOKです。 –

+0

私はそれに応じてコードの変更をしたいのですか? –

関連する問題

 関連する問題