новый вопрос здесь. У меня есть два списка, в каждом из которых есть кнопка «сделать фото». После того, как фотография сделана, я бы хотел разместить миниатюру в виде переработчика нажатой кнопки.
Например. Если нажата кнопка 1, поместите миниатюру в первый список. если нажата кнопка 2, поместите фотографию в список 2. Это кажется легкой задачей, но у меня возникли проблемы с ней.
В настоящее время, когда я беру пи c, он попадает в оба списка. если я удалю один из обзоров. пи c попадет go в список кнопок, которые были нажаты первыми.
есть ли способ установить onActivityResult для помещения пи c в соответствующий список нажатых кнопок?
вот мой код: list1. xml
android:id="@+id/list1RecyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
</androidx.recyclerview.widget.RecyclerView>
<com.google.android.material.button.MaterialButton
android:id="@+id/list2PicsButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="list1 button"
android:textColor="#FFFFFF">
</com.google.android.material.button.MaterialButton>
list2 xml
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/list2RecyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
</androidx.recyclerview.widget.RecyclerView>
<com.google.android.material.button.MaterialButton
android:id="@+id/list2PicsButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="list2 button"
android:textColor="#FFFFFF">
</com.google.android.material.button.MaterialButton>
активность
class TakePhotosActivity : AppCompatActivity() {
private val REQUEST_IMAGE_CAPTURE = 1
private lateinit var list1 : RecyclerViewAdapter
private lateinit var list2: RecyclerViewAdapter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_take_photos)
initRecyclerView()
list1PicsButton.setOnClickListener{
takePhotos();
}
list2PicsButton.setOnClickListener{
takePhotos();
}
private fun initRecyclerView() {
list1.apply {
layoutManager = LinearLayoutManager(this@TakePhotosActivity, RecyclerView.HORIZONTAL, false)
photoAdapter = RecyclerViewAdapter()
adapter = photoAdapter
}
list2.apply {
layoutManager = LinearLayoutManager(this@TakePhotosActivity, RecyclerView.HORIZONTAL, false)
buddyAdapter = RecyclerViewAdapter()
adapter = buddyAdapter
}
}
private fun takePhotos() {
Intent(MediaStore.ACTION_IMAGE_CAPTURE).also { takePictureIntent ->
takePictureIntent.resolveActivity(packageManager)?.also {
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE)
}
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
val imageBitmap = data?.extras?.get("data") as Bitmap
list1.addPhoto(imageBitmap)
list2.addPhoto(imageBitmap)
}
}