1
我做了很多对话的android系统在Java象下面这样:为什么java类字段(和事件处理程序字段)不会在android对话框和自定义视图中初始化?
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_OnClickListener.onClick
点击按钮PersistButton
,但如果我改变的onClick分配到下面的代码,一切正常后,从来没有所谓的:
PersistButton().setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
PersistRest();
}
});
为什么? 这个问题只发生在android对话框和android自定义视图
仅供参考:Java中的Pascal外壳使阅读代码变得更加困难。请考虑坚持Java约定。 – ChiefTwoPencils