2013-07-16 60 views
3

OK,我有一個是從的preferences.xml充滿addPreferencesFromResource(R.xml.preferences);一個設置活動中,有一個對話的偏好:如何在xml首選項中從對話框中啓動活動?

<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(...?); 
    } 

} 

什麼,我特別要提出的 「......?」 ?

回答

2

解決這樣說:

  • 二手正常偏好
  • 在alertdialog火災後續活動
  • 從它的應用onclicklistener的偏好在活動
  • 啓動AlertDialog
  • 清晰的按鍵點擊
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(...) 
     } 
    } 
} 
相關問題