如何實現顯示簡單「是/否」確認對話框的首選項?請參閱Browser->Setting->Clear Cache
。如何實現確認(是/否)DialogPreference?
回答
這是一個簡單的alert dialog,費德里科給了你一個網站,你可以查找的東西。
下面是如何構建警報對話框的簡短示例。
new AlertDialog.Builder(this)
.setTitle("Title")
.setMessage("Do you really want to whatever?")
.setIcon(android.R.drawable.ic_dialog_alert)
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
Toast.makeText(MainActivity.this, "Yaay", Toast.LENGTH_SHORT).show();
}})
.setNegativeButton(android.R.string.no, null).show();
我已經用一個如何使用DialogPreference的例子回答了一個類似的問題。
使用意向偏好,如果您使用的偏好XML屏幕或你,如果你正在使用你自定義屏幕那麼代碼會像下面
intentClearCookies = getPreferenceManager().createPreferenceScreen(this);
Intent clearcookies = new Intent(PopupPostPref.this, ClearCookies.class);
intentClearCookies.setIntent(clearcookies);
intentClearCookies.setTitle(R.string.ClearCookies);
intentClearCookies.setEnabled(true);
launchPrefCat.addPreference(intentClearCookies);
然後像下面創建活動類有所作爲不同的人,你可以使用任何你喜歡的方法,這只是一個例子。
public class ClearCookies extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
showDialog();
}
/**
* @throws NotFoundException
*/
private void showDialog() throws NotFoundException {
new AlertDialog.Builder(this)
.setTitle(getResources().getString(R.string.ClearCookies))
.setMessage(
getResources().getString(R.string.ClearCookieQuestion))
.setIcon(
getResources().getDrawable(
android.R.drawable.ic_dialog_alert))
.setPositiveButton(
getResources().getString(R.string.PostiveYesButton),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
//Do Something Here
}
})
.setNegativeButton(
getResources().getString(R.string.NegativeNoButton),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
//Do Something Here
}
}).show();
}}
如前所述,有很多方法可以做到這一點。這是你完成任務的方法之一,如果你覺得你已經得到了你想要的結果,請接受答案。
謝謝!這幾乎正是我的應用程序所需要的,因爲我從服務中觸發對話,在我的情況下,我需要一個活動來託管對話。 – 2014-01-06 11:49:15
喜歡它。恕我直言,詳細,但批准和正確的方式 – John 2015-01-30 14:00:55
Android帶有一個內置的YesNoPreference類,它完全按照您的需要進行操作(帶有yes和no選項的確認對話框)。查看官方源代碼here。
不幸的是,它位於com.android.internal.preference
包中,這意味着它是Android私有API的一部分,您無法從您的應用程序訪問它(私有API類如有更改,恕不另行通知,因此Google不會讓你訪問它們)。
解決方案:只需從我提供的鏈接複製/粘貼官方源代碼,在應用程序包中重新創建類。我試過這個,它工作正常(沒有理由爲什麼它不應該)。
然後,您可以像其他偏好一樣將其添加到您的preferences.xml
。例如:
<com.example.myapp.YesNoPreference
android:dialogMessage="Are you sure you want to revert all settings to their default values?"
android:key="com.example.myapp.pref_reset_settings_key"
android:summary="Revert all settings to their default values."
android:title="Reset Settings" />
,看起來像這樣:
偉大的解決方案!但是這個類的構造函數有一個問題!它引用了一個資源attr(com.android.internal.R.attr.yesNoPreferenceStyle)!哪個不能解決。什麼是解決方法?我是否必須在自己的項目中創建一個? – reubenjohn 2014-05-28 08:00:17
- 1. 如何正確實現DialogPreference子類的onRestoreInstanceState()?
- 2. EDI 999實現確認
- 3. 卸載器的實現是否正確?
- 4. -mx32 GCC標誌是否實現(正確)?
- 5. 我的Bubble Sort實現是否正確?
- 6. QueueUserWorkItem是否鎖定正確實現?
- 7. 在Singleton上實現IDisposable是否正確
- 8. ddd - 我的ValueObject實現是否正確?
- 9. 如何在ASP.NET MVC 3中正確實現「確認密碼」?
- 10. 如何確定抽象方法是否實現?
- 11. 如何確定類型是否實現Powershell中的接口
- 12. 如何確定是否類實現標記接口
- 13. 如何檢查我是否正確實現C庫函數?
- 14. 如何檢查協議是否實現?
- 15. 確認ftp是否完整?
- 16. 是/否確認消息
- 17. JMS規範或各種實現是否支持消息的傳遞確認?
- 18. 是否可以延遲在netty的socket.io實現中發送確認?
- 19. 如何正確實現IUserType?
- 20. 如何實現正確
- 21. 如何正確實現hook_views_plugins?
- 22. 如何正確實現INotifyDataErrorInfo?
- 23. 如何正確實現`operator /`?
- 24. 如何正確實現angularFireAuth?
- 25. 如何正確實現hash_hmac?
- 26. 接口是否被認爲是實現它的類的父類?
- 27. Bucket-Sort的這種實現是否被認爲是「in-place」?
- 28. JMS - 如何正確實現消息接收器與明確的確認?
- 29. ActiveMQ實現異步確認JAVA 8
- 30. BlackBerry推送實現與等待確認
使用DialogPreferneces – 2011-10-31 19:47:46