Может ли кто-нибудь помочь мне создать пользовательский интерфейс слушателя с некоторыми фрагментами кода?
135
Создайте новый файл:
MyListener.java
:
public interface MyListener {
// you can define any parameter as per your requirement
public void callback(View view, String result);
}
В своей деятельности реализуйте интерфейс:
MyActivity.java
:
public class MyActivity extends Activity implements MyListener {
@override
public void onCreate(){
MyButton m = new MyButton(this);
}
// method is invoked when MyButton is clicked
@override
public void callback(View view, String result) {
// do your stuff here
}
}
В вашем настраиваемом классе при необходимости вызывайте интерфейс:
MyButton.java
:
public class MyButton {
MyListener ml;
// constructor
MyButton(MyListener ml) {
//Setting the listener
this.ml = ml;
}
public void MyLogicToIntimateOthers() {
//Invoke the interface
ml.callback(this, "success");
}
}
WeakReference<>
В этом случае вы можете использовать a , но тогда вы не можете сделать слушателя анонимным классом или чем-то еще, где у слушателя нет других ссылок ... поэтому было бы предпочтительнее его не использоватьпожалуйста, прочтите шаблон наблюдателя
интерфейс слушателя
тогда в вашем классе скажите
Event
классв вашем классе водителя
MyTestDriver
источник
Интерфейс
GenericAsyncTask
Посмотрите на это , этот вопрос для более подробной информации.
источник
Есть 4 шага:
1. создать интерфейсный класс (слушатель)
2. использовать интерфейс в представлении 1 (определить переменную)
3. реализует интерфейс для представления 2 (представление 1 используется в представлении 2)
4. пропустить интерфейс из представления 1 для просмотра 2
Пример:
Шаг 1: вам нужно создать интерфейс и определить функцию
Шаг 2: используйте этот интерфейс в поле зрения
Шаг 3,4: внедряет в действие
источник
Создайте интерфейс слушателя.
И создайте метод setOnCustomClick в другом действии (или фрагменте), где вы хотите применить свой собственный слушатель ...
Вызовите этот метод из своего первого действия и передайте интерфейс слушателя ...
источник
В 2018 году нет необходимости в интерфейсах слушателей. У вас есть Android LiveData, чтобы позаботиться о передаче желаемого результата обратно компонентам пользовательского интерфейса.
Если я возьму ответ Рупеша и настрою его для использования LiveData, ему будет так:
и теперь в вашем классе драйвера MyTestDriver:
Для получения дополнительной информации вместе с примерами кода вы можете прочитать мой пост об этом, а также официальную документацию:
Когда и зачем использовать LiveData
Официальные документы
источник
В Android вы можете создать интерфейс, такой как Listener, и ваша Activity реализует его, но я не думаю, что это хорошая идея. если у нас есть много компонентов для прослушивания изменений их состояния, мы можем создать BaseListener, реализующий интерфейс Listener, и использовать код типа для их обработки. мы можем привязать метод при создании файла XML, например:
и исходный код:
но я не думаю, что это хорошая идея ...
источник
Я сделал это примерно так, как показано ниже, для отправки моего класса модели из второго действия в первое действие. Для этого я использовал LiveData с помощью ответов Rupesh и TheCodeFather.
Вторая деятельность
liveSong - это модель AudioListModel, объявленная глобально.
Вызовите этот метод в первом действии
Пусть это поможет новым исследователям вроде меня.
источник
Простой способ сделать этот подход. Сначала реализует
OnClickListeners
в вашем классе Activity.Код:
источник