Ho cercato un esempio di KISS su come eseguire questa operazione, e mentre tutti sembrano (e li ho esaminati TUTTI!) Abbastanza semplici, non riesco ancora a capirlo il concetto. Mi riferisco ai listener personalizzati (quelli che non estendono nulla) ... In particolare, creando un listener per una variabile booleana in modo che possa impostare alcuni metodi quando il suo valore cambia.Android: ascolto delle modifiche variabili
questo è un esempio di un esempio che ho provato: android how to make listener to a custom variable?
Se qualcuno ha il tempo di spiegare un ascoltatore personalizzato e come funziona in parole povere, che sarebbe molto apprezzato. Spero che una volta capito esattamente come viene notificato all'ascoltatore un cambiamento, allora sarò in grado di crearne uno e capire come funziona quella dannata cosa. Questo mi sta dando un mal di testa ... Grazie in anticipo
Ecco dove sono a in questo momento:
public class ChangeListener {
boolean boo = false;
public ChangeListener(boolean b){
boo = b;
}
private listener l = null;
public interface listener{
public void onChange(boolean b);
}
public void setChangeListener(listener mListener){
l = mListener;
}
public void somethingChanged(){
if(l != null){
l.onChange(boo);
}
}
}
Questa è una fotografia di mia attività principale:
public class Main extends Activity implements ChangeListener.listener{
private ChangeListener listener;
private boolean boo = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
listener = new ChangeListener(boo);
listener.setChangeListener(this);
listener.somethingChanged();
}
@Override
public void onChange(boolean b) {
// TODO Auto-generated method stub
Toast.makeText(this, "REST = "+b, Toast.LENGTH_SHORT).show();
}
}
Ora, quando l'attività inizia, il Toast mostra lo stato di boo ... fantastico. Il problema è che si verifica solo all'interno di onCreate, il che ha senso quando si trova .qualcosaChanged. Quello che vorrei è che il Toast sia generato ogni volta che boo viene cambiato da falso a vero, e vero a falso, indipendentemente dal fatto che sia all'interno di onCreate o meno. Vale a dire:
- Fare clic su un pulsante di
- cause fischiano cambiare da false a true
- Listener raccoglie sul cambiamento e corre tutto ciò che è in onChange
So che potrei semplicemente usare il button actionListener per fare questo, ma mi piacerebbe stare lontano da questo, se possibile, che al momento sto iniziando a pensare è impossibile.
Qualsiasi intuizione sarebbe molto apprezzata. Grazie in anticipo!
Sto considerando l'utilizzo di semplici metodi setX/getX per modificare il valore e impostare altri metodi.Questo sarà probabilmente sufficiente ma continuo a pensare che la mia richiesta originale abbia molto valore se è possibile farlo in Java. Commenti/soluzioni ancora apprezzate. Grazie – user1977217