1
私は以下のようなJavaでのAndroidのダイアログの多くを作っ:Javaクラスフィールド(およびイベントハンドラーフィールド)がアンドロイドダイアログとカスタムビューで初期化されないのはなぜですか?
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;
}
}
問題はPersistButton
ボタンをクリックするが、私はコードの下にonClickの割り当てを変更した場合、すべてが正常に動作した後に呼び出されることはありませんPersistButton_OnClickListener.onClick
方法であり、
PersistButton().setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
PersistRest();
}
});
なぜですか? この問題はアンドロイドのダイアログとアンドロイドのカスタムビューでのみ発生します
FYI:JavaのPascalケーシングはコードを読みにくくします。 Javaの規約を守ってください。 – ChiefTwoPencils