如何实现显示简单“是/否”确认对话框的首选项?请参阅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. 我的Bubble Sort实现是否正确?
- 2. ddd - 我的ValueObject实现是否正确?
- 3. QueueUserWorkItem是否锁定正确实现?
- 4. 如何确定是否类实现标记接口
- 5. 如何确定抽象方法是否实现?
- 6. 如何实现默认NSFetchedResultsControllerDelegate
- 7. 如何检查协议是否实现?
- 8. 是/否确认消息
- 9. 确认ftp是否完整?
- 10. JMS规范或各种实现是否支持消息的传递确认?
- 11. 是否可以延迟在netty的socket.io实现中发送确认?
- 12. 如何正确实现hash_hmac?
- 13. 如何正确实现IUserType?
- 14. 如何正确实现`operator /`?
- 15. JMS - 如何正确实现消息接收器与明确的确认?
- 16. Bucket-Sort的这种实现是否被认为是“in-place”?
- 17. 如何在php脚本中实现确认提醒?
- 18. 如何在Jquery UI对话框中实现“确认”对话框?
- 19. 如何在smack中实现消息确认
- 20. 如何在rails中实现确认或预览?
- 21. ASP.Net:如何正确地实现这一认证流程
- 22. 如何实现在角度4退出确认?
- 23. 使用std libs实现Java TFTP - 如何确认数据包?
- 24. 如何实现没有javascript的弹出窗口确认窗口
- 25. 如何在MDI父窗体上实现用户确认退出?
- 26. C#如何在数据通信中实现等待确认?
- 27. 如何在ASP.NET MVC中实现“注册确认”?
- 28. 在DialogPreference中隐藏默认按钮
- 29. 如何确认实体是否以GAE的最终一致性保存?
- 30. 如何确认NHibernate实际上是否使用SQL Profiler进行事务?
使用DialogPreferneces – 2011-10-31 19:47:46