I am new to Android Development. I am following the Beginning Development Tutorial from the developer.android.com. Unfortunately, I'm stuck trying to add a Search Action Item to the Action Bar. This is my XML and the onCreateOptionsMenu that corresponds:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.test.MainActivity" >
<item android:id="#+id/action_search"
android:icon="#drawable/ic_action_search"
android:title="#string/action_search"
app:showAsAction="always"/>
<item
android:id="#+id/action_settings"
android:orderInCategory="100"
android:title="#string/action_settings"
app:showAsAction="never"/>
</menu>
.
#Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
My drawable directories contains the ic_action_search.png for all the screen densities. Also, my SDK min is 8 and the target is 19. I have imported the v7.app.ActionBarActivity as well.
The setting and overflow menu show up, yet the Search is still missing. What am I doing wrong?
It could be because you are using the compatibility library in which case you need to add extra attributes to the menu XML file. This is my item for the search option...
<item android:id="#+id/options_menu_search"
android:title="#string/search"
android:icon="#android:drawable/ic_menu_search"
com.mycompany.myapp:showAsAction="ifRoom|collapseActionView"
com.mycompany.myapp:actionViewClass="android.support.v7.widget.SearchView" >
</item>
Notice the two lines which start with com.mycompany.myapp - those are necessary when using the compatibility menu options. Change that prefix to match your app's package name.
Related
I spent many days but can't overcome a challenge in which I want to open an search activity after pressing searchview icon from main activity but don't gain focus and pop up keyboard by doing back pressing to return the main activity.
Both main activity and search activity contains toolbars and search menus. In detail, the code for them are as following:
menu of main activity
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="#+id/action_search"
android:icon="#drawable/ic_search"
android:title="Search"
android:iconifiedByDefault="false"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="ifRoom|collapseActionView"/>
<!--app:showAsAction="ifRoom|collapseActionView"-->
<item android:id="#+id/action_settings"
android:title="Thu nghiem"/>
menu of search activity
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity">
<item android:id="#+id/search_action_search"
android:icon="#drawable/ic_search"
android:title="Search"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="ifRoom|collapseActionView"/>
<item android:id="#+id/search_action_settings"
android:title="Detail"/>
In main activity, I tried
#Override
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.example_menu, menu);
SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
searchView.setIconified(true);
searchView.setFocusable(false);
searchView.setFocusableInTouchMode(false);
searchView.clearFocus();
return true;
}
Also, I tried some different ways but can't achieve successfully.
use this line to prevent the keyboard from appearing in your activity.
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
I want to have a checkmark icon in the actionbar.
The code I'm using is:
In menu_actionbar.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:title=""
android:id="#+id/action_check"
android:icon="#drawable/ic_done_white_48dp"
android:orderInCategory="100"
app:showAsAction="always"/>
</menu>
In the activity:
#Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_actionbar, menu);
return true;
}
Here's what it's supposed to look like, and how it has looked for a while until some recent support library update (not sure which one exactly): correct
Here's what it looks like on the device now: incorrect
I built a simple menu (That if I click "menu" option in my emulator on eclipse I will see it), and I have three options in this menu: About us, preferences and exit. Everyone of them are work and good, but I have a small problem.
The color of the menu is white, and the text is white too so I cant to see the text.
This is the XML code:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:text="About Us"
android:id="#+id/aboutUs"
android:numericShortcut="1"
android:alphabeticShortcut="a" />
<item
android:text="Perferences"
android:id="#+id/perferences" />
<item
android:text="Exit"
android:id="#+id/exit" />
</menu>
Hope for answers and thanks in advance!
public boolean onCreateOptionsMenu(android.view.Menu menu) {
// TODO Auto-generated method stub
super.onCreateOptionsMenu(menu);
MenuInflater blowUp = getMenuInflater();
blowUp.inflate(R.menu.cool_menu, menu);
return true;
}
Please add:
<item name="android:actionMenuTextColor">#color/any_color_you_want</item>
to your styles.xml
I have used actionbarcompat in programming. Also I've added android-support-v7-appcompat library. Unfortunately action bar display as bellow (Items doesn't appear) :
please say right way.
this is my menu.xml code:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ActionBar2="http://schemas.android.com/apk/res-auto">
<item
android:id="#+id/action_search"
android:orderInCategory="100"
ActionBar2:showAsAction="always"
android:title="Search"/>
<item
android:id="#+id/action_copy"
android:orderInCategory="100"
ActionBar2:showAsAction="always"
android:title="Copy"/>
<item
android:id="#+id/action_share"
android:orderInCategory="100"
ActionBar2:showAsAction="always"
android:title="Share"/>
<item
android:id="#+id/action_share"
android:orderInCategory="100"
ActionBar2:showAsAction="always"
android:title="Hossein"/>
</menu>
Please take a look at the answers in this question (Android Studio - just can't get action bar / overflow to work?). If a hardware button is available no overflow menu will be shown.
This works for me with appcompat v21:
On My onCreateoptionsMenu();
final MenuItem switchButton = menu.findItem(R.id.action_import);
final MenuItem searchItem = menu.findItem(R.id.action_search);
MenuItemCompat.setShowAsAction(searchItem, MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
MenuItemCompat.setShowAsAction(switchButton, MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
I'm trying to add some menu items with icons to a menu.
The items appear but without the icon on the left side of them, it's just the text...
By the way, I'm using the Holo Light theme...
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="#+id/menu_market"
android:title="View on Play Store"
android:icon="#drawable/ic_playstore_colorful"/>
</menu>
Thanx upfront!
Okay so i found this android blog post, http://android-developers.blogspot.com/2012/01/say-goodbye-to-menu-button.html and they mentioned how the whole menu paradigm is changing in ICS and they said to use the actionbar now, requires API 11 or later:
I have this in /res/menu/activity_main XML directory:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="#+id/firstmenu"
android:title="#string/menu_settings"
android:icon="#drawable/ic_launcher"
android:showAsAction="always|withText">
<menu>
<item android:id="#+id/submenu"
android:title="SubMenu">
</item>
</menu>
</item>
<item android:id="#+id/secondmenu"
android:title="seconditem"
android:icon="#drawable/ic_launcher"
android:showAsAction="always|withText">
</item>
</menu>
And this in source of course:
#Override
public boolean onCreateOptionsMenu(Menu menu)
{
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.activity_main, menu);
return true;
}
Works pretty well and looks good.