Articles of android actionbar

ActionBar下拉导航 – 方向更改将错误的片段放入

我有一个动作栏下拉导航。 问题是当我切换到另一个片段,然后进行方向更改时,它会将第一个片段放入其中,即使我认为我正在正确处理savedInstanceState。 问题似乎是onNavigationItemSelected被调用,所以..我将如何正确处理这个? 我可以将savedInstanceStatevariables设为一个字段,但这感觉不对… public class MainActivity extends FragmentActivity implements MyListFragment.OnArticleSelectedListener { public static final String TAG = “MainActivity”; @SuppressLint(“NewApi”) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if(savedInstanceState != null) { Fragment savedFragment = getSupportFragmentManager().getFragment(savedInstanceState, “saved_fragment”); Log.d(MainActivity.TAG, “savedInstanceState != null: ” + savedFragment.getTag()); getSupportFragmentManager() .beginTransaction() .replace(R.id.fragment_container, savedFragment, savedFragment.getTag()) .commit(); } else { Log.d(MainActivity.TAG, “savedInstanceState […]

Android嵌套了带ActionBar的PreferenceScreen

我的Android应用程序中有一个SettingsActivity。 最初没有Actionbar,所以我实现了这个: settings_toolbar.xml SettingsActivity.java public class SettingsActivity extends PreferenceActivity { @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); LinearLayout root = (LinearLayout)findViewById(android.R.id.list).getParent().getParent().getParent(); Toolbar bar = (Toolbar) LayoutInflater.from(this).inflate(R.layout.settings_toolbar, root, false); root.addView(bar, 0); // insert at top bar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); } } 它工作得很好但仅适用于第一个PreferenceScreen。 如果我有一个嵌套的PreferenceScreen,那么就没有ActionBar。 我怎样才能实现这一点,在嵌套的PreferenceScreen上还有带后退按钮的ActionBar? 它应该与API15 +和AppCombat兼容 原帖: 如何将支持库中的Action […]

为多个对象使用generics类(actionBar选项卡)

目前我使用ABS,ActionBar Tabs和TabsAdapter / ViewPager为我的应用程序制作一个漂亮的标签布局。 我有5个以上的类别标签 – 最终用户将能够添加新的类别(我稍后会设置它)。 所以,目前,我有一个主要的SherlockFragmentActivity和许多SherlockFragment类别文件。 在主要SFA的onCreate中,我构建了actionBar并添加了所有选项卡,如下所示: mTabsAdapter.addTab(bar.newTab().setText(R.string.login), LoginFragment.class, null); mTabsAdapter.addTab(bar.newTab().setText(“Geographics”), GeoFragment.class, null); mTabsAdapter.addTab(bar.newTab().setText(R.string.economics), EconFragment.class, null); mTabsAdapter.addTab(bar.newTab().setText(R.string.elections), ElectionsFragment.class, null); 我想做的是创建一个新的解决方案, CategoryFragment而不是使用所有特定的选举,地理,经济等等。任何人都可以想象一个解决方案吗? 理想情况下,我想将一个字符串传递给添加的选项卡,以便CategoryFragment可以根据字符串进行扩充。 我想要这个解决方案,因为代码在多个类中是非常冗余的,当所有类真正做的是从SQL db在线加载东西时,只获取自己类别的数据。 这是我的TabsAdapter类: public class TabsAdapter extends FragmentPagerAdapter implements ActionBar.TabListener, ViewPager.OnPageChangeListener { private final Context mContext; private Polling activity; private final ActionBar mActionBar; private final ViewPager mViewPager; private final ArrayList mTabs […]

使用MenuItemCompat获取SearchView(Android)

我试图实现SearchView ActionBar项目,因为Android开发人员说,但我遇到了一些麻烦。 ( http://developer.android.com/guide/topics/ui/actionbar.html )。 有两个错误虽然我已经找了很多,但我还是找不到解决方案。 1)我有类MenuItemCompat的问题。 它说:方法getActionView(MenuItem)未定义为MenuItemCompattypes 我只能为这个类使用以下方法: setShowAsAction(item,actionEnum) setActionView(item,view) 这是代码 @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.restloader, menu); MenuItem searchItem = menu.findItem(R.id.search_menu); SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem); // Configure the search info and add any event listeners return super.onCreateOptionsMenu(menu); } 2)这有一个问题:xmlns:myapp =“http://schemas.android.com/apk/res-auto”我不明白为什么使用它但是如果谷歌说它,它必须是合适的。 错误消息:在此行find多个注释: – 错误:未在包’com.example.pruebahttp3’中find属性’actionViewClass’的资源标识符 – 错误:在包’com.example中找不到属性’showAsAction’的资源标识符。 pruebahttp3′ 非常感谢你!

上下文操作模式自定义行为

在android开发人员的菜单指南中 ,提到: 当用户取消选择所有项目,按BACK按钮或选择栏左侧的完成操作时,操作模式被禁用,上下文操作栏消失。 从技术上讲,它意味着mActionMode.finish() , BACK按钮按下或Done动作选择调用ActionMode.Callback onDestroyActionMode()方法。 我的问题是如何执行自定义操作(例如Toast(“Action mode exit by Done select”) )当用户选择Done ,以及另一个操作(例如Toast(“Action mode exit by BACK”) )时用户按BACK ?

Android:单击搜索时,ActionBar图标和导航下拉菜单之间的边距会发生变化

我有以下设置: 因此,您可以单击操作栏的搜索图标以转到搜索栏。 很标准: 因此,如果您已完成搜索,则可以单击“主页”图标以使该栏消失: 但是当你回去时,导航下拉菜单会向右移动很多: 我无法弄清楚这里发生了什么。 我做的第一件事是创建一个全新的应用程序并重新创建它(这是你在下面看到的),以确保它不是我在主应用程序中使用的样式或主题的问题。 这没有帮助解决问题。 我正在使用ActionBarSherlock,所以我接下来要做的是使用Google的官方Action Bar API重建项目。 这也没有什么不同。 有没有人有任何想法? 我会提供你认为可以提供帮助的任何代码,但我直接从谷歌的文档中了解了它。 谢谢! 编辑:添加一些带有布局边框的前后图像(4.1+中的开发选项function) 之前: 后: 我还包括菜单XML:

在dispatchCreateOptionsMenu期间旋转时出现NullPointerException,堆栈跟踪不包括我的应用程序中的任何函数

我有一个应用程序,它使用ICS中操作栏上的选项卡,其中每个选项卡中都有一个片段。 在某些情况下,在我按下操作栏上选项菜单上的按钮后,然后旋转设备,我得到一个NullPointerException。 我可以使用相同的步骤可靠地重现它,但在某些情况下(如果我不按动作栏上的任何按钮)不会产生exception。 该exception似乎没有引用我的代码中的任何行,并且在方向更改后重新创建活动期间发生。 这是例外: 09-18 20:56:22.357: E/AndroidRuntime(689): FATAL EXCEPTION: main 09-18 20:56:22.357: E/AndroidRuntime(689): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.andavapps.flightbot/com.andavapps.flightbot.FlightBotActivity}: java.lang.NullPointerException 09-18 20:56:22.357: E/AndroidRuntime(689): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956) 09-18 20:56:22.357: E/AndroidRuntime(689): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 09-18 20:56:22.357: E/AndroidRuntime(689): at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3351) 09-18 20:56:22.357: E/AndroidRuntime(689): at android.app.ActivityThread.access$700(ActivityThread.java:123) 09-18 20:56:22.357: E/AndroidRuntime(689): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1151) 09-18 20:56:22.357: E/AndroidRuntime(689): at android.os.Handler.dispatchMessage(Handler.java:99) 09-18 20:56:22.357: E/AndroidRuntime(689): at […]

更改选项卡中的线条颜色 – ActionBarSherlock

我正在使用ActionBarSherlock使我的应用程序与旧设备兼容。 实现很简单,但现在我需要将您在标签下看到的默认Holo蓝线设置为红线。 我一直在阅读SO上的一些主题( 主题1 , 主题2 )以及ABS文档( 链接 ),但我无法让它发挥作用。 这就是我到目前为止所拥有的。 在我的AndroidManifest.xml中,我将此行添加到application标记中。 然后在res/values/styles.xml我有: @style/Widget.MyTheme.ActionBar @style/Widget.MyTheme.ActionBar #ff000000 #ff000000 但是当我运行我的应用程序时,我仍然看到默认的蓝线颜色。 我究竟做错了什么? 编辑 如果您想完全设计ActionBarSherlock样式,请阅读此内容! 我在SO上find了一个答案,它提供了以下链接: http : //jgilfelt.github.com/android-actionbarstylegenerator 它是一个简单的发电机,可为完全定制的ABS生成所有需要的文件! 您所要做的就是将生成的文件复制到适当的文件夹中,然后进行设置! 不要忘记在AndroidManifest中启用样式(您必须在生成器中输入样式名称 )。 为此,请参阅下面的答案。

android中的导航抽屉不是全屏

由于谷歌推出了导航抽屉,我尝试使用这个组件来创建类似Facebook的菜单。 问题是,视觉效果似乎不同。 当抽屉打开时,谷歌的操作栏会保留,而facebook则没有。相反,整个屏幕都推到了右侧 我发现有一些lib可以实现这一点,但由于我不喜欢在项目中包含第三方库,有没有办法实现这一点? 谢谢 代码基于导航抽屉教程 protected void setupMenu(List list, final ListView menu) { Adapter customAdapter = new Adapter(getActionBar().getThemedContext(), R.layout.item, list); menu.setAdapter(customAdapter); menu.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, final int pos, long id) { String selected = ((TextView) view.findViewById(R.id.itemTxt)) .getText().toString(); // define pass data final Bundle bData = new Bundle(); bData.putString(“itemSelect”, […]

ActionBar / Toolbar未在Lollipop版本的应用上显示

我目前正在尝试将我的应用程序转换为棒棒糖材质设计,并且在操作栏/工具栏中遇到了一些问题。 按照我的方式实现所有操作,操作栏/工具栏不会显示在棒棒糖或kitkat设备上。 也许有人可以看看我的主题,样式,activity_main(我拿着一堆片段,是我放置工具栏xml代码的唯一地方)和mainactivity。 谢谢。 价值观/ styles.xml @menu/action_menu 值/的themes.xml @color/material_blue_grey_800 @color/material_blue_grey_950 @color/black true false activity_main.xml中 <!– –> 主要活动 public class MainActivity extends ActionBarActivity implements OnItemClickListener { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Fragment fragment = new MadlibsSelect(); fragment = new MadlibsSelect(); FragmentTransaction fm = getSupportFragmentManager().beginTransaction(); fragment.setArguments(getIntent().getExtras()); fm.add(R.id.fragment_container, fragment); fm.commit(); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); […]