Bunun nasıl yapılacağına dair bir KISS örneği aradım ve hepsi göründükleri halde (ve hepsinden geçtim TÜM!) Yeterince basit, hala başımı alamıyorum kavram. Özel dinleyicilere atıfta bulunuyorum (herhangi bir şeyi genişletmeyenler). Özellikle, bir boole değişkeni için bir dinleyici oluşturarak, değeri değiştiğinde bazı yöntemleri ayarlayabilirim.Android: Değişken değişiklikleri dinleme
bu ben denedim bir örnek örneğidir: android how to make listener to a custom variable?
birisi özel bir dinleyici açıklamak için zaman vardır ve düz İngilizce olarak nasıl çalıştığını, o çok takdir edin. Dinleyicinin bir değişiklikten nasıl haberdar edildiğini anladığımda, kendi kendimi yaratabileceğimi ve lanet şeyin nasıl çalıştığını anlayabileceğimi umuyorum.
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();
}
}
:
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);
}
}
}
Bu benim ana faaliyet anlık bir: Bu şu anda yaşıyorum nerede
İşteolduğunu önceden ... Bana Teşekkür ağrıtıyor Şimdi, etkinlik başladığında, Tost, harikulade durumunu gösterir. Problem sadece onCreate içinde gerçekleşir, bu da .somethingChanged'in olduğu gibi mantıklıdır. İstediğim şey, Toast'ın, her defasında yaratığın, sahte olandan doğruya doğru değiştiği ve ondan sonra yaratılıp yaratılmadığına bakılmaksızın, sahte olarak doğru olarak üretilmesidir. Yani:
- nedenleri gerçek
- İşleyici yanlıştan değiştirmek için boo bir düğmeyi tıklayın değişikliği alır ve ben sadece kullanabilirsiniz biliyorum onChange
ne varsa çalıştırır button actionListener bunu yapmak için, ancak mümkün olduğunca uzak durmak isterim ki, şu anda düşünmeye başlamak imkansızdır.
Herhangi bir fikir çok takdir edilecektir. Şimdiden teşekkürler!
Değeri değiştirmek ve diğer yöntemleri değiştirmek için basit setX/getX yöntemlerini kullanmayı düşünüyorum.Bu muhtemelen yeterli olacaktır ama yine de orijinal isteğimin Java'da yapılabilmesi mümkün olduğunda çok fazla değeri olduğunu düşünüyorum. Yorumlar/çözümler hala takdir edilmektedir. Teşekkürler – user1977217