Android - Как расширить AppCompatActivity () в адаптере? - PullRequest
0 голосов
/ 06 марта 2019

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

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

1 Ответ

1 голос
/ 06 марта 2019

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

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

Подробное объяснение здесь

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