#android #android-recyclerview
#Android #android-recyclerview
Вопрос:
У меня recyclerview
есть кнопка переключения для каждого элемента, и я хочу добавить switch.setOnCheckedChangeListener
для элементов. как я могу создать интерфейс между классом адаптера и активностью хоста recyclerview??
Ответ №1:
Сначала вы создадите класс интерфейса
public interface ExampleInterface {
void udpateData(String data);
}
Интерфейс будет определен с именем и параметрами, которые вы хотите
Во-вторых, в activity или фрагменте, имеющем RecycleView, вам необходимо реализовать этот интерфейс.
В-третьих, при вызове вашего адаптера, пожалуйста, передайте это interface
вашему адаптеру. Каждый раз, когда ваша кнопка переключения меняет статус, interface
будет вызывать метод updateData для обновления данных
Удачи
Ответ №2:
В вашей активности хоста напишите метод для обработки изменения кнопки переключения, скажем
private void switchButtonChanged()
передайте действие хоста при создании адаптера, например
Adapter adapter = new Adapter(getActivity())
под вашим onCheckedChangedListener () в адаптере запустите hostActivity.switchButtonChanged()
Ответ №3:
Есть простой способ сделать это. интерфейс.
public class YourAdapter extends YourAdapterExtends {
private AdapterInteractionListener adapterInteractionListener;
... // your adapter codes
public YourAdapter(AdapterInteractionListener adapterInteractionListener){
this.adapterInteractionListener = adapterInteractionListener;
}
//call where you call switch.setOnCheckedChangeListener method
switch. setOnCheckedChangeListener{
adapterInteractionListener.onSwitched;
}
//here your interaction interface.
public interface AdapterInteractionListener{
void onSwitched();
}
}
И ваша активность хоста
public class YourActivity extends YourExtends impelements YourAdapter.AdapterInteractionListener {
...//your activity codes
@Override
onSwitched{
//here your switch listener triggered here
}
}
Надеюсь, это поможет.