3

好的,我有一个从preferences.xml 填充的设置活动addPreferencesFromResource(R.xml.preferences);,有一个对话框首选项:

<com.android.maxr1998.cleanit.DialogPreference
    android:title="@string/pref_dev"
    android:key="dev"
    android:dialogIcon="@drawable/alerts_and_states_warning"
    android:dialogLayout="@layout/dev_dialog"
    android:positiveButtonText="@android:string/yes"
    android:negativeButtonText="@android:string/cancel"/>

现在,当我单击是时,我希望启动另一个活动...

这是我的 DialogPreference.class

package com.android.maxr1998.cleanit;

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Region;
import android.provider.ContactsContract;
import android.util.AttributeSet;

public class DialogPreference extends android.preference.DialogPreference {

    public DialogPreference(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public DialogPreference(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }
    public interface ClickListener {
        public void onPositiveBtnClicked(...?);
    }

}

我必须在“...”处具体写​​什么??

4

2 回答 2

2

为 DialogPreference 编写一个接口。在您的活动中实施。在积极的点击事件回调中。

class DialogPreference extends ... {
   public interface ClickListener {
      public void onPositiveBtnClicked(...);
   }
   public void setListener(ClickListener l) {
      mClickListener = l;
   }
   @Override
   onClick(DialogInterface dialog, int which) {
      if(which == DialogInterface .BUTTON_POSITIVE) {
         mClickListener.onPositiveBtnClicked(...)
      }
   }
}
于 2013-07-16T19:09:08.870 回答
2

以这种方式解决它:

  • 使用正常偏好
  • 在 Activity 中的 Preference 上应用 onclicklistener
  • 从中启动 AlertDialog
  • 在 alertdialog 中单击正按钮会触发活动
于 2014-11-05T19:42:00.197 回答