Вы можете использовать EventBus здесь: http://greenrobot.org/eventbus/
Загрузить EventBus
зависимости {
compile fileTree (dir: 'libs', include: ['* .jar'])
testCompile 'junit: junit: 4.12'
скомпилировать 'com.android.support:appcompat-v7:24.1.1'
скомпилируйте 'com.android.support:support-v4:24.1.1'
скомпилируйте 'org.greenrobot: eventbus: 3.0.0'
}
Создать новый тип события Class. Давайте назовем это BarrePersonnaliseeEvent.
открытый класс BarrePersonnaliseeEvent {
private boolean _touchDown;
public BarrePersonnaliseeEvent(boolean touchDown) {
_touchDown = touchDown;
}
public boolean isTouchDown(){
return _touchDown;
} }
- Теперь передайте событие в EventBus
открытый класс BarrePersonnalisee расширяет LinearLayout, реализует OnClickListener {
Контекст mycontext;
Просмотр convertview;
ImageButton searchadresse;
public BarrePersonnalisee(Context context, AttributeSet attrs) {
super(context, attrs);
mycontext=context;
convertview=LayoutInflater.from(mycontext).inflate(R.layout.barre, this);
searchadresse=(ImageButton)convertview.findViewById(R.id.searchadresse);
searchadresse.setOnClickListener(this);
}
public void onClick(View arg0) {
switch (arg0.getId()) {
case R.id.searchadresse:
//I want to dispatch this event
EventBus.getDefault().post(new BarrePersonnaliseeEvent(true));
break;
}
}
....
}
- Обновить активность, чтобы начать получать события:
открытый класс TaxiMapActivity расширяет MapActivity {
BarrePersonnalisee barre;
...
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
barre=(BarrePersonnalisee)this.findViewById(R.id.barre1);
}
@ Subscribe (threadMode = ThreadMode.MAIN)
public void onBarrePersonnaliseeEvent (событие BarrePersonnaliseeEvent) {
Toast.
}
}
Обязательно зарегистрируйте и отмените регистрацию для EventBus в своей деятельности
@ Override
public void onStart (Контекстный контекст) {
super.onStart (контекст);
. EventBus.getDefault () регистр (это);
}
@ Override
public void onStop () {
super.onStop ();
. EventBus.getDefault () разрегистрировать (это);
}