没有调用onBindDialogView - 为什么?

sca*_*moi 4 android listpreference dialog-preference

我想实现ListPreference的子类,而其构造被称为(在显示它),它被覆盖的onBindDialogView不是.

  public MyListPreference(Context context, AttributeSet attrs) {
    super(context, attrs);
    // TODO Auto-generated constructor stub
    Log.v(TAG, "MyListPreference constructed.");
  }


  @Override
  protected void onBindDialogView(View view) {
    super.onBindDialogView(view);
    Log.v(TAG, "onBindDialogView called");    
  }
Run Code Online (Sandbox Code Playgroud)

为什么会这样?我错过了什么?

更新:我在onCreateDialogView()中植入了一条日志消息,它被调用了.

只有onBindDialogView()不会被调用.

为什么?调用此回调的条件是什么?

cur*_*zen 5

你的onCreateDialogView()回报是什么?onBindDialogView()仅当您从那里返回非空自定义视图时才会调用它.此外,onBindDialogView()仅在您实际显示首选项时调用.参考:DialogPreference的源代码.特别是,请参阅showDialog()方法

如果您只是从您的超级实现onCreateDialogView()返回,我怀疑它返回null.