È possibile definire una classe (non necessariamente) astratta che estende Attività, implementare onSearchRequest e ereditare tutte le altre classi di attività da quella classe. In questo modo devi solo definire il comportamento onSearch solo una volta.
cioè
public abstract class MyBaseActivity extends Activity {
@Override
public void onSearchRequest() {
// Your stuff here
}
}
public class MyActivity1 extends MyBaseActivity {
// OnSearchRequest is already implemented
}
Se si prevede di utilizzare più sottoclassi di attività, vale a dire ListActivity, questo potrebbe non essere una buona soluzione, come si deve creare una classe di base astratta per tutte le sottoclassi di attività che si usa. In questo caso vi consiglio di creare una classe aggiuntiva, incapsulando il codice di gestione bottone di ricerca e chiamo da voi attività onSearchRequest, cioè
public class SearchButtonHandle {
public void handleSearch(Context c) {
// Your search btn handling code goes here
}
}
public class MyActivity1 extends Activity { // Or ListActivity ....
@Override
public void onSearchRequest() {
new SearchButtonHandle().handleSearch(this);
}
}
Naturalmente è anche possibile combinare entrambi approches definendo un Estratto sottoclasse di tutte le attività Sottoclassi utilizzate e implementate onSearchRequest come nell'esempio precedente con un gestore di ricerca esterno
fonte
2012-07-21 13:24:12
Assicuratevi di contrassegnare la risposta corretta se lo avete usato. In caso contrario, fornirci maggiori informazioni. – Michal