我正在制作一个Rails应用程序,并且正在尝试实现与Twitter的Bootstrap 崩溃相关的特定功能.当我解释它时,请耐心等待.
我目前有以下观点:
单击每个按钮时,将展开其数据切换div.视图设置如下:
<button class="btn dropdown" data-toggle="collapse" data-target="#keys"><i class="icon-chevron-right"></i> Keys <span class="badge badge-info pull-right"><%= @app.keys.count %></span></button>
<button class="btn dropdown" data-toggle="collapse" data-target="#attrs"><i class="icon-chevron-right"></i> Attributes</button>
<button class="btn dropdown" data-toggle="collapse" data-target="#edit"><i class="icon-chevron-right"></i> Edit Details</button>
<div class="collapse indent" id="keys">
<!--content-->
</div>
<div class="collapse indent" id="attrs">
<!--content-->
</div>
<div class="collapse" id="edit">
<!--content-->
</div>
Run Code Online (Sandbox Code Playgroud)
我有这样的设置,因为我想要按钮并排连续.如果我将按钮移动到视图正上方,它们会展开/折叠,然后按钮会叠加在一起.
所以,我的最终目标是将三个按钮并排放置,让它们折叠并展开各自的部分.然而,目前的设置工作有点尴尬.例如,如果有人展开了"键"部分,然后展开了"属性"部分,则必须在"键"部分下方滚动.
这个问题有两种可能的解决方案.一个是按下一个按钮会导致另一个按钮自行折叠.这意味着在任何给定时间,只扩展其中一个部分.
更好的解决方案,我认为是这样,当键扩展时,右边的按钮向下移动到键div的底部,当属性展开时,编辑细节按钮移动到该div的底部.这可能吗?我已经尝试通过让按钮堆叠在一起并通过css改变它们的相对位置来做到这一点,但这不起作用,因为当其中一个部分被扩展时,其他按钮最终出现在尴尬的位置扩展部分的中间部分.
最后,我想在没有twitter的引导页面上提到的手风琴风格行为的情况下尝试这样做,但是如果有人能够从设计的角度说服我更好,我肯定会重新考虑.
以下代码:
myQueue.enqueue('a');
myQueue.enqueue('b');
cout << myQueue.dequeue() << myQueue.dequeue();
Run Code Online (Sandbox Code Playgroud)
将"ba"打印到控制台
而:
myQueue.enqueue('a');
myQueue.enqueue('b');
cout << myQueue.dequeue();
cout << myQueue.dequeue();
Run Code Online (Sandbox Code Playgroud)
打印"ab"为什么会这样?
似乎cout首先调用最外层(最接近;)函数并且正在进行中,它的行为方式是什么?
我正在使用AlertDialog.Builder来显示一个提示用户输入密码的对话框,然后我想在偏好中保存该密码,但是我无法弄清楚如何从警告对话框的输入方法中获取结果.
这基本上是我希望能够做到的:
String result;
AlertDialog.Builder b = new AlertDialog.Builder(this);
b.setTitle("Please enter a password");
final EditText input = new EditText(this);
b.setView(input);
b.setPositiveButton("OK", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int whichButton)
{
//I get a compile error here, it wants result to be final.
result = input.getText().toString();
}
});
b.setNegativeButton("CANCEL", null);
b.create().show();
Run Code Online (Sandbox Code Playgroud)
但是,我愿意做一些事情,比如showDialog(int);
然后使用onCreateDialog(int)
方法并以某种方式设置结果并以其他方法接收它,但我不知道如何去做最后一部分.
我正在尝试向特定的URL发送PUT请求,并且到目前为止还没有成功.
如果我通过HTTP请求者GUI(例如这个)执行此操作,那么就像在以下URL上执行PUT一样简单:
http://www.mywebsite.com:port/Application?key=apikey&id=id&option=enable|disable
请注意,在上述请求中指定了端口号.通过ruby代码提交请求时,我还需要这样做.
我怎样才能在Ruby中复制这样的请求?
我有一个程序,它采用各种命令行参数.为了简化起见,我们会说,它需要3个标志,-a
,-b
,和-c
,并使用下面的代码来分析我的论点:
int c;
while((c = getopt(argc, argv, ":a:b:c")) != EOF)
{
switch (c)
{
case 'a':
cout << optarg << endl;
break;
case 'b':
cout << optarg << endl;
break;
case ':':
cerr << "Missing option." << endl;
exit(1);
break;
}
}
Run Code Online (Sandbox Code Playgroud)
注意:a,和b后面的参数标志.
但是,如果我调用我的程序,我会遇到一个问题
./myprog -a -b parameterForB
Run Code Online (Sandbox Code Playgroud)
我忘记了parameterForA,返回-b
参数ForA(由optarg表示),而参数FORB 被认为是没有参数的选项,而optind被设置为argv中parameterForB的索引.
在这种情况下,所需的行为':'
是在没有找到参数后返回-a
,并Missing option.
打印到标准错误.但是,这仅发生在-a
传递给程序的最后一个参数的事件中.
我想问题是:有getopt()
没有办法假设没有选项可以开始-
?
我正在尝试创建一个具有私有成员的类,该类是一个数组.我不知道数组的大小,直到值传递给构造函数.定义类构造函数以及.h文件中的定义以允许这个可变大小的数组的最佳方法是什么?
作为这个问题的前言:我对Rails开发(以及一般的Web开发)是全新的,我的一些担忧可能没有根据,所以任何反馈都会非常有用.
我正在尝试创建一个插入RESTful API的Rails应用程序.我一直在努力确定最好的方法,从我的理解,它缩小到从头开始制作我自己的模型,利用ActiveModel,或利用ActiveResource.
我不清楚每个的优点/缺点,坦率地说,我还没有完全理解ActiveModel和ActiveResource之间的区别.有人能否为我提供有关这三种选择的见解以及在最佳环境中最具"意义"的内容?谢谢!
最好的答案不仅仅是说"使用ActiveModel"或"使用ActiveResource"以及这样做的说明,但这也会有所帮助.我真的很感激答案解释为什么我应该使用那个东西,等等.
我正在处理的一些约束是我在调用API时需要使用密钥,并且大量的API调用将包含其他参数.
我使用的android:onClick
属性附加伤害一些对我的Android应用我的.xml布局文件,但是当它运行,因为没有在我的代码是不断打电话给他们的ProGuard是消除从我的代码这些方法.
而不是单独指定每个函数,我想给它们命名listener_functionName
,并使用通配符,-keep listener_*
(我知道这是不正确的,但希望它说明了我的目标).
如果这可能会很好,但如果不是,我仍然需要知道如何在proguard.cfg文件中指定这些函数.任何帮助表示赞赏.
我正在编写一个使用服务的Android闹钟应用程序,以播放闹钟铃声.目前,我可以播放音频,但它可以通过调低设备音量来缓存.因此,我试图添加一个调用setAudioStreamType(AudioManager.STREAM_ALARM);
来防止这种情况.
我onStartCommand()
的服务功能有以下内容:
MediaPlayer mMP;
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
try
{
mMP = MediaPlayer.create(this, R.raw.alarm);
mMP.setAudioStreamType(AudioManager.STREAM_ALARM);
mMP.setLooping(true);
//mMP.prepare(); commented out since prepare() is called in create
}
catch (Exception e)
{
e.printStackTrace();
}
if (mMP != null) mMP.start();
return START_STICKY;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,通过调用setAudioStreamType(),MediaPlayer从不播放音频.如果我评论该行,音频播放.
使用该行,我得到以下运行时错误:
04-10 19:32:03.115:E/MediaPlayer(3411):在状态8中调用setAudioStream
04-10 19:32:03.115:E/MediaPlayer(3411):错误(-38,0)
04-10 19:32:03.115:E/MediaPlayer(3411):在状态0中调用
04-10 19:32:03.115:E/MediaPlayer(3411):错误(-38,0)
04-10 19:32:03.115:E/MediaPlayer(3411):错误(-38,0)
04-10 19:32:03.115:E/MediaPlayer(3411):错误(-38,0)
一些研究(我现在找不到链接)告诉我,setAudioStreamType()
在调用之后无法prepare()
调用,并且create()
隐式调用prepare()
.
无论如何,如果setAudioStreamType()
没有这样的错误我该怎么办?
我最近开始在Google Android Market上销售我的Android应用程序,并实施了他们的应用程序许可方案,以防止未经授权使用我的应用程序.我现在正计划在亚马逊Android App Store上发布它,并希望了解维护我的应用程序的两个版本的最佳方式:一个实现Android许可,另一个不实现.
虽然我目前的解决方案有效,但它不是最优的,我试图找出其他人处理这个问题的方法.现在,我为我的应用程序SplashGoogle.java和SplashAmazon.java实现了两个启动画面.我有两个相应的Manifest文件,GoogleManifest.xml和AmazonManifest.xml.每个清单都定义了一个不同的启动作为启动器意图.
当我想要发布我的应用程序版本时,我将其中一个清单文件重命名为AndroidManifest.xml,导出应用程序,然后对其他Manifest执行相同操作.这是我的解决方案,因为它是我能想到的最好的,并且不知道其他方法可以做到这一点.它起作用是因为我的应用程序的亚马逊和谷歌市场版本之间的唯一区别是相应的启动类,一个用于检查许可,另一个用于检查许可.
在路上,我可能要实现更多的改变(或合并到只有一个闪屏),并正在寻找管理同一应用程序中的微妙变化的一个更永久的手段.
我想,当开发人员创建精简,免费或广告支持的付费应用程序版本时,类似的问题就出现了.
补充说明:
我不确定这是否应该被视为社区维基,但如果是这样,请将其标记为反对关闭问题.我相信这对很多开发人员都有用.