我找到了一种解决方法,可以在嵌套的PreferenceScreen上实际启用ActionBar主页按钮…但是,它没有在我的PreferenceActivity中调用OnOptionsItemSelected。有人知道在嵌套的PreferenceScreen上实际使用主页按钮的方法吗?
在此处修改第35个帖子:
http://code.google.com/p/android/issues/detail?id=4611
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference)
{
super.onPreferenceTreeClick(preferenceScreen, preference);
if (preference!=null)
if (preference instanceof PreferenceScreen)
if (((PreferenceScreen)preference).getDialog()!=null)
((PreferenceScreen)preference).getDialog().getActionBar().setHomeButtonEnabled(true);
return false;
}
我最近有这个问题,这就是我解决的方法。首先,要访问PreferenceScreen,我使用与上面提到的完全相同的方法。
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
super.onPreferenceTreeClick(preferenceScreen, preference);
// If the user has clicked on a preference screen, set up the action bar
if (preference instanceof PreferenceScreen) {
initializeActionBar((PreferenceScreen) preference);
}
return false;
}
从这里,我研究了PreferenceScreen是什么,而我很难过地发现它只是Dialog的包装。继续前进,然后设置操作栏显示选项并尝试找到“主页”按钮区域。不幸的是,这种方法不太容易实现,但是在层次结构查看器的帮助下,我设法找到了主页图标,然后找到了其父视图,从而获得了访问权限。一旦我们能够访问包含的LinearLayout,就可以附加onClickListener,以关闭PreferenceScreen的对话框,该对话框调用PreferenceScreen的onDismissListener并将我们返回到上一个屏幕。
/** Sets up the action bar for an {@link PreferenceScreen} */
public static void initializeActionBar(PreferenceScreen preferenceScreen) {
final Dialog dialog = preferenceScreen.getDialog();
if (dialog != null) {
// Inialize the action bar
dialog.getActionBar().setDisplayHomeAsUpEnabled(true);
// Apply custom home button area click listener to close the PreferenceScreen because PreferenceScreens are dialogs which swallow
// events instead of passing to the activity
// Related Issue: https://code.google.com/p/android/issues/detail?id=4611
View homeBtn = dialog.findViewById(android.R.id.home);
if (homeBtn != null) {
OnClickListener dismissDialogClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
};
// Prepare yourselves for some hacky programming
ViewParent homeBtnContainer = homeBtn.getParent();
// The home button is an ImageView inside a FrameLayout
if (homeBtnContainer instanceof FrameLayout) {
ViewGroup containerParent = (ViewGroup) homeBtnContainer.getParent();
if (containerParent instanceof LinearLayout) {
// This view also contains the title text, set the whole view as clickable
((LinearLayout) containerParent).setOnClickListener(dismissDialogClickListener);
} else {
// Just set it on the home button
((FrameLayout) homeBtnContainer).setOnClickListener(dismissDialogClickListener);
}
} else {
// The 'If all else fails' default case
homeBtn.setOnClickListener(dismissDialogClickListener);
}
}
}
}
我有一个图像按钮在我的应用程序中的每一个活动。当图像按钮被按下时,我需要转到主屏幕。我正在使用代码 但是,当我在单击图像按钮后从主屏幕导航时,它应该会从它调用的地方转到相同的页面。 例如,我有Activity1、Activity2、Activity3、Activity4等…Activity1是首页,我会选择国家,然后去Activity2,然后去Activity3,等等,但如果我从Activity4
我似乎无法让图标出现在我的项目活动顶部的操作栏上,我使用了正确的名称空间和正确的扩展,一切都应该顺利运行,这是菜单项的xml,我添加了一行“xmlns:app=”http://schemas.android.com/apk/res-auto“它还是不起作用。” 这是菜单充气器的java代码
我已经添加了AVPlayServiceWController视图,这是我当前viewcontroller视图的一半,然后从URL播放视频,目前一切正常,但工作正常。 事实上,我想做景观模式时,用户点击全屏按钮,在这里无法找到按钮的动作 检测纵向或横向全屏播放的视频 是否有任何通知或presentedViewController或其他信息需要了解? 我已经读了这么多问题,没有得到任何答案,所以在这里
六羟甲基三聚氰胺六甲醚。。在某些情况下,我有一个对象需要在hazelcast实例上执行操作。所以我实现了HazelcastInstanceAware接口,但这似乎不适用于嵌套类。。。 以下核心输出"null"到控制台: 公共类NullError实现可序列化,HazelcastInstanceAware{私有瞬态HazelcastInstance instance1;私有瞬态HazelcastIns
问题内容: 我的后退滑动功能有效,但仅在屏幕边缘有效。如何在屏幕上的任何地方工作? 问题答案: 苹果在这里说: InteractivePopGestureRecognizer 手势识别器负责将顶视图控制器从导航堆栈中弹出。(只读) @property(非原子,只读)UIGestureRecognizer * interactivePopGestureRecognizer 导航控制器将此手势识别器安
我正在用JavaFX制作一个桌面应用程序,我制作了一个仅出现5秒的启动屏幕,5秒后它会显示一个带有按钮的新阶段,当我单击按钮时,它会发送一个错误: 下面是JavaFX类 RootForm.java(启动屏幕) } RootForm.fxml(启动屏幕fxml) Error.fxml(带按钮的第二阶段) ErrorController.java(应该出现的第二阶段) 在我点击第二个屏幕上的按钮后,我