J'écris un journal app android, mais l'application a arrêtéapplication journal android - image dans la base de données SQLite
J'ai succès mis le texte dans la base de données (SQLite) Et je veux mettre des photos de la galerie du téléphone mobile dans la base de données trop après avoir ajouté le code de photos, l'application a arrêté Je ne sais pas comment résoudre ce
S'il vous plaît aidez-moi à voir ce qui se trompe sur le code
public class EditActivity extends Activity {
private EditText editText;
private Button phoBtn;
private Button saveBtn;
private Button cancalBtn;
private DBHelper dbHelper;
private int id;
SQLiteDatabase db;
private String selectedImagePath;
private static final int SELECT_PICTURE = 1;
ImageView iv;
Uri selectedImageUri;
String ivimage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit);
editText = (EditText) findViewById(R.id.editText);
phoBtn = (Button) findViewById(R.id.photos);
saveBtn = (Button) findViewById(R.id.save);
cancalBtn = (Button) findViewById(R.id.cancel);
id = getIntent().getIntExtra("_id", -1);
iv=(ImageView)findViewById(R.id.imageView1);
System.out.println(id);
dbHelper = new DBHelper(this);
if (id != -1) {
Cursor cursor = dbHelper.query(
"select name,content,dt from DIARY where _id=?",
new String[] { String.valueOf(id) });
cursor.moveToFirst();
String content = cursor.getString(1);
editText.setText(content);
String i=cursor.getString(cursor.getColumnIndex("image"));
Uri imgUri=Uri.parse(i);
iv.setImageURI(imgUri);
saveBtn.setOnClickListener(updateClickListener);
}else
{
db.execSQL("insert into DIARY values('"+selectedImageUri+"')");
saveBtn.setOnClickListener(saveClickListener);
}
cancalBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(EditActivity.this,MainActivity.class);
startActivity(intent);
}
});
phoBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(
Intent.createChooser(intent, "Select Picture"),
SELECT_PICTURE);
}
});
}
View.OnClickListener updateClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
String text = editText.getText().toString();
ContentValues values = new ContentValues();
values.put("content", text);
String ivimage=iv.getContext().toString();
values.put("image", ivimage);
dbHelper.update(values,String.valueOf(id));
Intent intent = new Intent(EditActivity.this,MainActivity.class);
startActivity(intent);
}
};
EditText et =null;
String text;
View.OnClickListener saveClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
et = new EditText(EditActivity.this);
text = editText.getText().toString();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = format.format(new Date());
et.setText(date);
new AlertDialog.Builder(EditActivity.this)
.setTitle("My Diary")
.setIcon(android.R.drawable.ic_dialog_info)
.setView(et)
.setPositiveButton("Save", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String name = et.getText().toString();
ContentValues values = new ContentValues() ;
values.put("name", name);
values.put("content", text);
values.put("image", ivimage);
dbHelper.insert(values);
Intent intent = new Intent(EditActivity.this,MainActivity.class);
startActivity(intent);
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
})
.show();
}
};
public String getPath(Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(uri, projection, null, null, null);
int column_index = cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (requestCode == SELECT_PICTURE) {
selectedImageUri = data.getData();
selectedImagePath = getPath(selectedImageUri);
System.out.println("Image Path : " + selectedImagePath);
iv.setVisibility(View.VISIBLE);
iv.setImageURI(selectedImageUri);
}
}
}
}
Première étape: Exception stacktrace dans logcat. Incluez-le dans la question, aussi. – laalto
est-ce nécessaire? – user1735815
si l'exception stacktrace dans logcat est nécessaire, comment le faire – user1735815