Android-как расширить AppCompatActivity() в адаптере?

У меня есть adapter, и у меня есть действие, которое открывает «камеру приложения», затем я делаю снимок. И отсюда он должен выполнить функцию с именем onActivityResult(requestCode: Int, resultCode: Int, data: Intent?), но я не могу override метод, потому что я не могу расширить AppCompatActivity().

Любая помощь?


person Pedro Relvas    schedule 06.03.2019    source источник
comment
какой метод вы хотите переопределить?   -  person sasikumar    schedule 06.03.2019
comment
Вы должны запустить и обработать намерение из родительской активности адаптеров, затем обновить свой список и вызвать notifyDataSetChanged(); на адаптере (не забудьте его бросить) еще из активности хоста   -  person ArteFact    schedule 06.03.2019


Ответы (1)


Вы не можете, в Java классы не могут наследоваться от двух классов одновременно. Только один. Учитывая, что ваш адаптер уже extends RecyclerView.Adapter, вы не можете.

Рекомендуется использовать обратный вызов. Обратный вызов — это interface, который является implements в действии или фрагменте хоста и передается в качестве аргумента другому классу (в данном случае — адаптеру). Ваш адаптер будет содержать ссылку на обратный вызов, поэтому при нажатии на представление будет вызываться ссылка, запускающая реализацию действия или фрагмента.

Вы можете увидеть подробное объяснение здесь

  1. Когда происходит щелчок, из действия запускается намерение в камеру.
  2. После того, как фотография будет сделана внутри onActivityResult активности, передайте результат адаптеру.
  3. Адаптеру нужен метод для получения результата, он должен быть примерно таким
public void addPhoto(SomeObject object){
    yourData.add(object);
    notifyDataseChanged();
}
  1. Код внутри onActivityResult должен быть примерно таким
SomeObject objet = data... //you have to get the data and transform it to your format
adaper.addPhoto(object)
person cutiko    schedule 06.03.2019