J'ai fait beaucoup de dialogue dans Android par java comme ci-dessous:Pourquoi les champs de classe Java (et les champs du gestionnaire d'événements) ne s'initialisent pas dans les boîtes de dialogue android et les vues personnalisées?
public class MyComponent extends LinearLayout {
// constructors that will call InitializeComponent after inflate layout
private View.OnClickListener PersistButton_OnClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
PersistRest();
}
};
private void PersistRest() {
int selectedIndex = RestTimePicker().getValue() - 1;
long selectedTimeSpan = predefinedDurationValues[selectedIndex];
SecretaryManagerUtility.RegisterRestByDuration("", SecretaryManagerUtility.Me(), System.currentTimeMillis(), selectedTimeSpan);
}
@Override
protected void InitializeComponents() {
PersistButton().setOnClickListener(PersistButton_OnClickListener);
super.InitializeComponents();
}
private Button m_PersistButton;
protected Button PersistButton(){
if(m_PersistButton == null)
m_PersistButton = (Button)rootView.findViewById(R.id.PersistButton);
return m_PersistButton;
}
}
problème est la méthode PersistButton_OnClickListener.onClick
jamais appelé après avoir cliqué sur le bouton PersistButton
mais si je change d'affectation onClick au-dessous de code, tout fonctionne bien:
PersistButton().setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
PersistRest();
}
});
pourquoi? Ce problème se produit uniquement dans la boîte de dialogue android et les vues personnalisées android
FYI: le casing de Pascal en Java rend la lecture de votre code plus difficile. Pensez à respecter les conventions Java. – ChiefTwoPencils