Нажимаю на кнопку Фото, открывается галерея. Из галереи выбираю изображение. Изображение отражается на ImageView
. Нажимаю "Добавить", изображение появляется в ListView
. Если хочу добавить новое изображение из галереи в ListView
, то все время добавляет первое изображение выбранное из галереи. Экран приложения:
Как решить эту проблему?
public class MainActivity extends Activity {
private EditText editTextName;
private EditText editTextLastname;
private ContentValues cv;
private String name;
private String lastname;
private SQLiteDatabase db;
private ListView mylistview;
private List<Ads> names;
static final int GALLERY_REQUEST = 1;
private ImageView imageViewPhoto;
byte[] img = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editTextName = (EditText) findViewById(R.id.editName);
editTextLastname = (EditText) findViewById(R.id.editLastname);
mylistview = (ListView) findViewById(R.id.mylistView1);
imageViewPhoto = (ImageView) findViewById(R.id.imageViewPhoto);
final DBHelper dbHelper = new DBHelper(this);
// создаем объект для данных
cv = new ContentValues();
// получаем данные из полей ввода
// подключаемся к БД
db = dbHelper.getWritableDatabase();
readSql();
findViewById(R.id.btnPhoto).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, GALLERY_REQUEST);
}
});
findViewById(R.id.btnAdd).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
imageViewPhoto.setDrawingCacheEnabled(true);
imageViewPhoto.buildDrawingCache();
Bitmap bm = imageViewPhoto.getDrawingCache();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] img = stream.toByteArray();
name = editTextName.getText().toString();
lastname = editTextLastname.getText().toString();
cv.put("name", name);
cv.put("lastname", lastname);
cv.put("photo", img);
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode,
Intent imageReturnedIntent) {
Bitmap b = null;
super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
switch (requestCode) {
case GALLERY_REQUEST:
if (resultCode == RESULT_OK) {
Uri selectedImage = imageReturnedIntent.getData();
try {
b = Media.getBitmap(getContentResolver(), selectedImage);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.d("my", "__________");
imageViewPhoto.setImageBitmap(b);
}
}
}