我想自定义添加ActionView
到我的ActionBar
.
我想添加常用的刷新按钮.(ImageButton
,ProgressBar
在里面FrameLayout
)但如果我使用的ActionView
onOptionsItemSelected()
是从未被调用过的.
这是代码:
在我的Activity
:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.messages_actionbar, menu);
mRefreshView = (RefreshView) menu.findItem(R.id.messages_refresh).getActionView();
return super.onCreateOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)
messages_actionbar
src:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/messages_refresh"
android:title="title"
android:icon="@drawable/icon"
android:showAsAction="always"
android:actionViewClass="com.blabla.RefreshView"/>
</menu>
Run Code Online (Sandbox Code Playgroud)
RefreshView
的代码:
public class RefreshView extends FrameLayout {
private ImageView mButton;
private ProgressBar mProgressBar;
private boolean mLoading;
public RefreshView(Context context) {
super(context, null);
initView(context);
}
public RefreshView(Context context, …
Run Code Online (Sandbox Code Playgroud) 我使用默认的"小部件预览"应用程序在Honeycomb模拟器中截取了我的应用程序小部件的屏幕截图,但我不知道图像保存在哪个位置.我一直在寻找使用adb shell命令以及查看Gallery应用程序,但我一直无法找到它.我可以通过电子邮件发送或发送彩信,但我想我不需要在模拟器上设置邮件帐户.
是否有一种简单的方法来获取我错过的图像,或者我是否真的需要在模拟器上设置邮件帐户?
提前致谢.
我有一个UI,我需要Fragment
在横向模式下显示(带有视图),但不能在纵向模式下显示.在纵向模式下,它应该仍然可用,但会使用ListPopupWindow
相反的方式显示其结果.
我想我可以通过使用<fragment />
横向布局的标签来处理这个问题,同时如果它没有启动(在我们是肖像的情况下)以编程方式创建片段.
只要从横向开始,这种方法就可以正常工作,如果以纵向方式开始,以编程方式创建片段,当您尝试将片段附加到布局时旋转模拟器时,应用程序将崩溃:
java.lang.IllegalStateException:Fragment没有创建视图.在android.app.Activity.onCreateView(Activity.java:4095)
这些文档Fragment.isInLayout()
似乎暗示它应该能够以这种方式处理它:
如果布局通过标记包含在活动视图层次结构中,则返回true.当通过标记创建片段时,这将始终为真,除非旧片段从先前状态恢复且未出现在当前状态的布局中.
所以问题是如何正确地做到这一点,或者是否有我遗漏的东西?
更新:
似乎不像isInLayout()
现在这样表现.如果已Fragment
手动将a 添加到容器,则返回false .
此外,如果您Fragment
手动添加到容器,然后将(设备)旋转到不包含该布局的布局,它将崩溃:
引起:java.lang.IllegalArgumentException:在android.app.FragmentManagerImpl.moveToState(FragmentManager.java:722)中找不到片段SearchFragment {4042f868#2 id = 0x7f060011 SearchFragment}的id 0x7f060011的视图
我很好奇在针对API 11或更高版本时,Android 3.0+上如何使用(如果有的话)onPrepareOptionsMenu(Menu)
(以及扩展名onPreparePanel(int, View, Menu)
).
我的想法如下:
一个Activity
人ActionBar
接收其内容onCreateOptionsMenu(Menu)
,您可以从中扩展XML菜单资源,直接添加项目或两者的某种组合.活动的任何片段也将接收此呼叫,并可选择执行相同操作.
要更新ActionBar上的项目,您可以保持Menu
实例或呼叫invalidateOptionsMenu()
,然后onCreateOptionsMenu(Menu)
再次结束呼叫.
onPrepareOptionsMenu(Menu)
那么,是否仍然只能支持不针对API 11或更新版本的遗留应用程序?
是否可以呼叫getActionBar().hide()
和getActionBar().show()
触发呼叫onPrepareOptionsMenu(Menu)
?
添加或删除片段会以某种方式触发此操作吗?
在我的表格中,我setError("")
在EditText
场上使用.我的应用程序主题扩展android:Theme.Holo
.
我已经手动用深色背景设置图像android:errorMessageBackground
和android:errorMessageBackgroundAbove
.
现在问题是:错误消息的文本颜色也很暗,不可读.
我尝试textColor
在我的主题中更改不同的属性,但我找不到正确的属性.
请问有人能帮助我吗?谢谢!克里斯
我创建了一个支持手机和平板电脑版本的应用程序,因此我使用了android-support-v4.jar库.我的活动扩展了FragmentActivity并覆盖onCreateOptionsMenu(菜单菜单).这在平板电脑上工作正常,onCreateOptionsMenu被正确调用但它在手机上不起作用,onCreateOptionsMenu永远不会被调用.怎么解决这个?
注意:我<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="12"/>
在Manifest文件上使用.
所以我最近切换到android 3.0(蜂窝),我有一些硬件渲染的问题,特别是在某个自定义视图我写的我用字体大小200来显示一些文本.
不幸的是,考虑到我在日志中出现的错误,openGLRenderer似乎不太喜欢那种相当大的字体大小:
06-06 16:22:00.080: ERROR/OpenGLRenderer(2503): Font size to large to fit in cache. width, height = 97, 145
Run Code Online (Sandbox Code Playgroud)
有没有解决方法(或修复它的方法),以便我可以获得所需字体大小的文本?
android font-size hardware-acceleration android-3.0-honeycomb
我知道它没有记录,也不适用于所有设备,但我看到越来越多的应用程序在安装后将其快捷方式放在主屏幕上.发现一堆代码块如何做到但对我来说它们并不适合.这就是我现在所得到的.
需要清单中的权限.
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
Run Code Online (Sandbox Code Playgroud)创建应该调用的活动的Intent.Ex(来自cgeek):
Intent shortcutIntent = new Intent();
shortcutIntent.setClassName("com.example.androidapp", "SampleIntent");
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Run Code Online (Sandbox Code Playgroud)创建快捷方式
Intent addIntent = new Intent();
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "Shortcut Name");
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(context, R.drawable.icon));
addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
context.sendBroadcast(addIntent);
Run Code Online (Sandbox Code Playgroud)我的问题是:在安装.apk后,这段代码应该去哪里添加快捷方式?我在启动器活动中尝试了此代码,每次应用启动时都会创建损坏的(另一个故事)快捷方式.
我计划实现基于WebView的Honeycomb平板电脑应用程序(因此,基本上它将是一个仅适用于平板电脑的HTML5基于Web的应用程序).
我希望通过滑动手指来实现水平和垂直滚动.为了更好地理解,我创建了示例大纲
此图像显示类似于Honeycomb的本机设置活动,左右页面可垂直滚动
欢迎任何类型的指南或资源.谢谢
我目前的应用程序设置ListFragment
在左侧和DetailsFragment
右侧(类似于下面平板电脑上的布局).
在操作栏上,我有一个搜索小部件,当提交搜索词时,应该更新列表的内容(在ListFragment中).我一直在关注Android开发(搜索指南http://developer.android.com/guide/topics/search/search-dialog.html),但我有,让搜索更新相同的活动列表中的问题.
我已经设法通过在提交搜索词时调用新活动来实现某种形式的实现,但是这使得后退按钮表现得很奇怪(即,您按回去,然后转到上一个活动,搜索小部件仍然显示搜索词).
我已将意图行添加到清单中,如下所示
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable"/>
Run Code Online (Sandbox Code Playgroud)
是否有可能让搜索小部件更新当前活动的列表?
android android-searchmanager android-3.0-honeycomb android-4.0-ice-cream-sandwich android-actionbar