我是Android <3.0中使用的菜单按钮的粉丝,因为它对我的游戏应用程序非常有用 - 它允许我采取重要但游戏玩法无关的功能(保存游戏,参考信息链接)并将其放置在它的某个地方没有弄乱主游戏界面,但仍然很容易访问(选项菜单).
这种键的使用成为3.0的问题,因为它删除了MENU按钮并用Action Bar替换它.动作栏真的不适合喜欢全屏运行的游戏,所以这真的很痛苦.没有操作栏 - 无法访问选项菜单.但是,我可能暂时忽略它,因为我在平板电脑上没有那么多用户,并且没有时间来测试它.
然而,ICS使这成为一个严重的问题,因为MENU按钮显然没有回来.现在我不仅要在平板电脑上处理这个问题,还要在手机上处理这个问题.
我对此问题的初步解决方案是在我的GUI中放置一个软按钮来替换硬菜单按钮
this.openOptionsMenu();
Run Code Online (Sandbox Code Playgroud)
一切都恢复到ICS的完美运作.
但是,这对Honeycomb不起作用.如果您没有可见的ActionBar,则调用openOptionsMenu绝对没有任何作用.
有关如何处理这个的任何想法?
我想我总是可以回到使用TargetSDK <11(从而迫使ActionBar出现在平板电脑上),但据我所知,这只是将问题推向未来,我不愿意这样做.
完全删除选项菜单,然后转到仅使用上下文菜单?[澄清:我的意思是,不是打开选项菜单 - 我只使用上下文菜单 - 至少现在 - 这些工作在所有设备上].
有兴趣听听其他人在整个选项菜单/ ActionBar混乱中遇到类似问题的决定.
compatibility android android-3.0-honeycomb android-4.0-ice-cream-sandwich android-4.2-jelly-bean
运行Jelly Bean(4.2.1)的一些(但不是全部)设备似乎缺少感叹号错误图标,该错误图标应出现在TextView(或更常见的是EditText)通过其设置错误的设备上TextView.setError(CharSequence error).

Galaxy Nexus似乎肯定错过了这个偶像.
结果是,设置的错误状态setError仅在EditText具有焦点时才会显现.这使得setError(...)有用的要少得多,因为它常常用来鼓励用户返回到该EditText解决的问题.例如,您有一个标准的登录屏幕,其中包含用户单击提交按钮时验证的用户名和密码表单条目.除非用户单击该表单,否则将不会显示用户名表单上设置的验证错误消息 - 错误图标旨在鼓励他们这样做!
测试:(可能有一个更容易访问的EditText,但这个可以广泛使用)
EditText留空,请单击"密码"EditText此时,"电子邮件"上设置了一个错误EditText,表示它不能为空.在没有此问题的设备上,会显示常用的错误图标,当EditText有焦点时,该图标会扩展为完整的错误消息.在运行Jelly Bean的Galaxy Nexuses上,没有显示图标,只有当"电子邮件" EditText再次聚焦时,错误才会显示,并且此时仍然缺少图标.
这看起来像一个错误,但我想检查其他人是否可以重现它,了解问题可能是什么,并有一个很好的解决方法.
使用setError(CharSequence error, Drawable icon)可能会解决问题,但能够在不同的Android版本中使用库存错误图形会很好.

当我的应用程序启动时,我想隐藏软键栏(红色矩形)以拥有更大的屏幕.
我怎么能隐藏它?
当应用程序退出时,我是否需要故意显示该栏?或者它会在应用程序退出后自动恢复?
Android 4.1,手机正面没有硬件按键.
从昨天起我在Android 4.2上遇到问题,当我收到推送通知时,即使我没有将其设置为振动,也需要获得许可
Notification notification = new Notification(icon, notificationItem.message, when);
notification.setLatestEventInfo(context, "App", notificationItem.message,
PendingIntent.getActivity(context, 0, intent, 0));
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notification.defaults |= Notification.DEFAULT_SOUND;
NotificationManager nm =
(NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
nm.notify(notificationItem.notificationID, notification);
Run Code Online (Sandbox Code Playgroud)
nm.notify引发了异常
我在两个不同的应用程序中遇到此问题,我从不修改代码
我正在研究在android中制作自定义启动器.我已经提到了android的Jellybean启动器的代码.现在我想在这个启动器中进行一些修改.
我想要的是:我们知道默认有五个工作区屏幕,我想在任何一个工作区屏幕中添加自定义视图.我的xml文件应该在任何一个屏幕中膨胀.
我已经尝试了很多方法来做到这一点但是因为默认的启动器代码非常复杂,但仍然没有找到方法.
在Playstore中已经有一个名为SOHO的应用程序,正是我想要的.我添加了屏幕截图以引用我想要的内容.
如果你们有任何想法的话,请帮助我.
预先感谢.

嗨所有错误报告您的信息.链接
问题详情:
守则 -wifiManager.getConnectionInfo().getSSID()
上面的代码返回当前的SSID,它返回当前的SSID,并在其周围加上额外的引号.
例如.SSID internet返回为"internet".
这只能在使用设备Nexus 7的Jelly bean 4.2上看到.
这个错误导致我们的应用程序出错,因为我们将当前的SSID与我们尝试连接的SSID进行比较.
wifiManager.getScanResults();但是,代码仍会返回所有SSID而没有额外的引号.
我想为Android 4.0及更高版本创建自定义lockScreen,我已经尝试了创建锁屏的小部件,但它只支持android 4.2.
有没有其他方法来创建自定义android锁屏?
我想将一组位图编码到h264中.这可以通过MediaEncoder吗?我已经编写了一些代码来执行此操作,但输出无法在我尝试过的任何媒体播放器中播放.这里是我主要从Stackoverflow上找到的其他来源借用的一些代码.
mMediaCodec = MediaCodec.createEncoderByType("video/avc");
mMediaFormat = MediaFormat.createVideoFormat("video/avc", 320, 240);
mMediaFormat.setInteger(MediaFormat.KEY_BIT_RATE, 125000);
mMediaFormat.setInteger(MediaFormat.KEY_FRAME_RATE, 15);
mMediaFormat.setInteger(MediaFormat.KEY_COLOR_FORMAT, MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420Planar);
mMediaFormat.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 5);
mMediaCodec.configure(mMediaFormat, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
mMediaCodec.start();
mInputBuffers = mMediaCodec.getInputBuffers();
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream); // image is the bitmap
byte[] input = byteArrayOutputStream.toByteArray();
int inputBufferIndex = mMediaCodec.dequeueInputBuffer(-1);
if (inputBufferIndex >= 0) {
ByteBuffer inputBuffer = mInputBuffers[inputBufferIndex];
inputBuffer.clear();
inputBuffer.put(input);
mMediaCodec.queueInputBuffer(inputBufferIndex, 0, input.length, 0, 0);
}
Run Code Online (Sandbox Code Playgroud)
我应该调整什么?
我有一个编辑文本,在我的应用程序中用作搜索框.在我的Nexus 7上的Jelly Bean中,当我在正在监听的文本框中输入内容并点击时,输入KeyEvent = null并将ActionId = 0传递给onEditorAction()方法.有人遇到过这种情况么?我认为这可能是一个错误.
在下面的第二个if语句中,我得到一个空指针,因为actionId = 0和KeyEvent = null;
// Search field logic.
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
Log.d(TAG, "onEditorAction");
if (event != null && event.getAction() != KeyEvent.ACTION_DOWN)
return false;
if (actionId == EditorInfo.IME_ACTION_SEARCH
|| event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
.....Do some stuff();
}
}
Run Code Online (Sandbox Code Playgroud) 我有以下代码片段,它使用画布的当前转换矩阵转换一组边界.
final RectF bounds = renderer.computeBounds
activeCanvas.getMatrix().mapRect(result, bounds);
return bounds;
Run Code Online (Sandbox Code Playgroud)
但是,使用最新的API级别(16),我会收到警告
The method getMatrix() from the type Canvas is deprecated
哪个都很好,但Canvas.getMatrix()的当前文档没有提到弃用,也没有提供替代方案.作为一种解决方法,我现在只是简单地抑制了这个警告,但我真的想知道这种新的和改进的(tm)方式是什么样的.
android ×10
android-4.0-ice-cream-sandwich ×1
android-wifi ×1
bitmap ×1
h.264 ×1
java ×1
lockscreen ×1
push ×1
ssid ×1
textview ×1