从 SDK 14 开始,首选顺序是 Cancel/OK,而不是之前的 OK/Cancel。 我不会参与关于这是好主意还是坏主意的辩论,这不是我要问的主题。
问题是 ADK 通过为您提供以下 Lint 来鼓励您对 SDK >= 14 的设备使用新命令
Layout uses the wrong button order for API >= 14: Create a layout-v14/layout.xml file with opposite order: Cancel button should be on the left (was "@string/send | Cancel", should be "Cancel | @string/ send")
好的,我会坚持下去,这对我来说不是问题,我明白我应该听从建议以避免惹恼用户。
但事情是这样的……在我的 Samsung Galaxy S II 上,运行在 ICS 上,系统界面本身似乎不遵循新的顺序。以下是一些截图示例:
订单是旧的。 请注意,我的手机使用的是官方 ICS 版本(不是自定义 ROM)。顺序与我的 Galaxy Tab 2(也运行官方 ICS)相同。 在某些对话框中,顺序是正确的(取消/确定) 我看到的唯一区别是主题(使用 Holo 主题的对话框有新顺序;其他的,旧顺序)。这是设置(设置系统日期)和我使用 Holo 的应用程序中 DatePickerDialog 的屏幕截图:
这很令人不安。 看起来按钮的顺序是与主题相关的,而不是与版本相关的。 或者只是三星没有遵循 Android 的设计模式?
我认为 Activity (当它们有确定/取消按钮时)也应该遵循相同的顺序。同样,在我的手机上,日历的创建事件 Activity 顺序错误(并且该 Activity 不使用 Hole 主题):
无论如何,我将在我的应用程序中为来自 Honeycomb 的设备使用 Holo 主题,因此我将保留 SDK>=14 的新订单。我只是想了解这个用法。
谢谢。
最佳答案
是的,按钮交换非常烦人,我最终点击取消而不是确定按钮。但这是你能做的。要么创建您自己的自定义对话框,以便您控制哪个按钮出现在哪里,要么让用户通过阅读来弄清楚。作为程序员,我们唯一需要做的就是当按下取消时,它实际上取消了,而不是 OKays!为了更清楚地说明为什么 Ok-Cancel 被交换,这是为了避免侵犯 Apple 的专利,因为他们也遵循 Ok-Cancel。所以交换 Cancel-Ok 就意味着没有侵权(愚蠢,但节省了谷歌数百万美元!)
关于android - ICS 中的确定/取消按钮顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12705058/
我遵循了教程http://gettingstartedwithchef.com/,第1章。我的运行list是"run_list":["recipe[apt]","recipe[phpap]"]我的phpapRecipe默认Recipeinclude_recipe"apache2"include_recipe"build-essential"include_recipe"openssl"include_recipe"mysql::client"include_recipe"mysql::server"include_recipe"php"include_recipe"php::modul
最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路
RSpec似乎按顺序匹配方法接收的消息。我不确定如何使以下代码工作:allow(a).toreceive(:f)expect(a).toreceive(:f).with(2)a.f(1)a.f(2)a.f(3)我问的原因是a.f的一些调用是由我的代码的上层控制的,所以我不能对这些方法调用添加期望。 最佳答案 RSpecspy是测试这种情况的一种方式。要监视一个方法,用allowstub,除了方法名称之外没有任何约束,调用该方法,然后expect确切的方法调用。例如:allow(a).toreceive(:f)a.f(2)a.f(1)
我希望用户从一个模型的三个选项中选择一个。即我有一个模型视频,可以被评为正面/负面/未知目前我有三列bool值(pos/neg/unknown)。这是处理这种情况的最佳方式吗?为此,表单应该是什么样的?目前我有类似的东西但显然它允许多项选择,而我试图将它限制为只有一个..怎么办? 最佳答案 如果要使用字符串列,让我们说rating。然后在你的表单中:#...#...它只允许一个选择编辑完全相同但使用radio_button_tag: 关于ruby-on-rails-Rails单选按钮-模
我正在构建一个小部件来显示奥运会的奖牌数。我有一个“国家”对象的集合,其中每个对象都有一个“名称”属性,以及奖牌计数的“金”、“银”、“铜”。列表应该排序:1.首先是奖牌总数2.如果奖牌相同,按类型分割(金>银>铜,即2金>1金+1银)3.如果奖牌和类型相同,则按字母顺序子排序我正在用ruby做这件事,但我想语言并不重要。我确实找到了一个解决方案,但如果感觉必须有更优雅的方法来实现它。这是我做的:使用加权奖牌总数创建一个虚拟属性。因此,如果他们有2个金牌和1个银牌,加权总数将为“3.020100”。1金1银1铜为“3.010101”由于我们希望将奖牌数排序为最高的,因此列表按降序排
基本上,我试图在用户单击链接(或按钮或某种类型的交互元素)时执行Rails方法。我试着把它放在View中:但这似乎没有用。它最终只是在用户甚至没有点击“添加”链接的情况下调用该函数。我也用link_to试过了,但也没用。我开始认为没有一种干净的方法可以做到这一点。无论如何,感谢您的帮助。附言。我在ApplicationController中定义了该方法,它是一个辅助方法。 最佳答案 View和Controller是相互独立的。为了使链接在Controller内执行函数调用,您需要对应用程序中的端点执行ajax调用。该路由应调用rub
我在ruby表单中有一个提交按钮f.submitbtn_text,class:"btnbtn-onemgt12mgb12",id:"btn_id"我想在不使用任何javascript的情况下通过ruby禁用此按钮 最佳答案 添加disabled:true选项。f.submitbtn_text,class:"btnbtn-onemgt12mgb12",id:"btn_id",disabled:true 关于ruby-on-rails-如何在Rails中添加禁用的提交按钮,我们在St
我在事件管理员编辑页面中有嵌套资源,但我只想允许管理员编辑现有资源的内容,而不是添加新的嵌套资源。我的代码看起来像这样:formdo|f|f.inputsdof.input:authorf.input:contentf.has_many:commentsdo|comment_form|comment_form.input:contentcomment_form.input:_destroy,as::boolean,required:false,label:'Remove'endendf.actionsend但它在输入下添加了“添加新评论”按钮。我怎样才能禁用它,并只为主窗体保留f.ac
我试图在每次运行时以随机顺序将一个名称数组拆分为多个数组。我知道如何拆分它们:name_array=["bob","john","rob","nate","nelly","michael"]array=name_array.each_slice(2).to_a=>[["bob","john"],["rob","nate"],["nelly","michael"]]但是,如果我希望它每次都以随机顺序吐出它们怎么办? 最佳答案 在做同样的事情之前,打乱数组。(Array#shuffle)name_array.shuffle.each_s
我有两个数组。第一个数组包含排序顺序。第二个数组包含任意数量的元素。我的属性是保证第二个数组中的所有元素(按值)都在第一个数组中,而且我只处理数字。A=[1,3,4,4,4,5,2,1,1,1,3,3]Order=[3,1,2,4,5]当我对A进行排序时,我希望元素按照Order指定的顺序出现:[3,3,3,1,1,1,1,2,4,4,4,5]请注意,重复是公平的游戏。A中的元素不应更改,只能重新排序。我该怎么做? 最佳答案 >>source=[1,3,4,4,4,5,2,1,1,1,3,3]=>[1,3,4,4,4,5,2,1,1