Я здесь, чтобы попросить вас помочь с этим: у меня есть MainActivity с listView и DetailsActivity с подробной информацией об элементе, выбранном в listView MainActivity.В этой DetailsActivity у меня также есть другой listView, где у каждого элемента есть imageView и кнопка.Когда эта кнопка нажата, намерение запускает камеру.Пока все хорошо.
Проблемы таковы:
как-то, мне нужно передать положение нажатой кнопки до цели, а затем вернуть ее обратно, так чтоТеперь я выясню, какое изображение должно заполняться фотографией;
намерение запускается из адаптера listView, который расширяет baseAdapter, но где должен быть размещен onActivityResult?
после съемки фотографии вместо возврата к DetailsActivity открывается MainActivity;
LVФотоадаптер:
public class LVPhotoAdapter extends BaseAdapter {
private Context context;
private final List<Photo> items;
private static final int CAMERA_REQUEST = 1888;
ImageView imageView;
public LVPhotoAdapter(Context context, final List<Photo> items) {
this.context = context;
this.items = items;
}
public int getCount() { return this.items.size(); }
public Object getItem(int arg0) { return this.items.get(arg0); }
public long getItemId(int arg0) { return arg0; }
public View getView(int arg0, View arg1, ViewGroup arg2) {
// TODO Auto-generated method stub
final Photo row = this.items.get(arg0);
View itemView = null;
if (arg1 == null) {
LayoutInflater inflater = (LayoutInflater) arg2.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
itemView = inflater.inflate(R.layout.photo_item, null);
} else {
itemView = arg1;
}
imageView = itemView.findViewById(R.id.imageView1);
TextView tipo = itemView.findViewById(R.id.tipo);
tipo.setText(row.getTipo());
TextView descricao = itemView.findViewById(R.id.descricao);
descricao.setText(row.getDescricao());
Button photoButton = itemView.findViewById(R.id.photoButton);
photoButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
((Activity)context).startActivityForResult(intent, CAMERA_REQUEST);
}
});
return itemView;
}
}
ПодробностиДеятельность:
public class DetailsActivity extends AppCompatActivity {
private ListView listViewPhotos;
public static PhotoAdapter PhotoAdapter;
ArrayList<Photo> photo;
private LVPhotoAdapter lvPhotoAdapter;
private static final int CAMERA_REQUEST = 1888;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_details);
(...)
listViewPhotos = findViewById(R.id.listViewPhotos);
PhotoAdapter = new PhotoAdapter(getApplicationContext());
photo = PhotoAdapter.getPhoto(bostamp);
lvPhotoAdapter = new LVPhotoAdapter(DetailsActivity.this, photo);
listViewPhotos.setAdapter(lvPhotoAdapter);
registerForContextMenu(listViewPhotos);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CAMERA_REQUEST) {
Bitmap image = (Bitmap) data.getExtras().get("data");
View itemView = null;
ImageView imageview = itemView.findViewById(R.id.imageView1);
imageview.setImageBitmap(image);
}
}
}