一個DialogPreference
不是一個Activity
:只需添加下面這一行。這只是一個Preference
,點擊後會顯示Dialog
。
問題是沒有明顯的方式以編程方式點擊Preference
。但是,由於您使用的是DialogPreference
,因此您已擁有自己的子類。因此,我們可以通過添加下面的方法您的DialogPreference
子解決我們的問題:在的onCreate()
//Expose the protected onClick method
void show() {
onClick();
}
然後你PreferencesActivity
你就會有這樣的事情,從你的XML文件加載的首選項。
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.preferences);
之後,你可以把一些像這樣的代碼:
booleanProp = true; //set this to the value of the property you're checking
if (! booleanProp) {
//Find the Preference via its android:key
//MyDialogPreference is your subclasss of DialogPreference
MyDialogPreference dp = (MyDialogPreference)getPreferenceScreen().findPreference("dialog_preference");
dp.show();
}
這有點黑客,因爲暴露protected
方法不理想,但它確實有效。
另一種辦法是更換Dialog
有PrefenceActivity
它包含了所有你希望保持和那麼你可以通過一個Intent
啓動它的選項,但我假設有你想自己定製一個很好的理由Dialog
具有特定的佈局。如果你想有一個第二PreferenceActivity
,你可以把它添加到您的喜好XML文件如下:
<PreferenceScreen
android:title="@string/title_of_preference"
android:summary="@string/summary_of_preference">
<intent android:action="your.action.goes.HERE"/>
</PreferenceScreen>
力關閉意味着一個uncatched異常被倒掉。看看LogCat。 – tbruyelle 2010-01-29 20:12:51
你說得對,我只是添加它。謝謝。 – Macarse 2010-01-29 20:38:44