我想在Android Fragments中有一个选项菜单.ActionBar选项菜单未显示在我的片段中.
这里是我的代码,我有两个onCreateOptionsMenu()和onOptionSelected()功能.我的代码没有显示任何错误.但是没有显示选项菜单.
package org.reachout;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import org.general.R;
public class ViewMessageFragment extends Fragment {
/* (non-Javadoc)
* @see android.support.v4.app.Fragment#onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)
*/
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (container == null) {
// We have different layouts, and in one of them this
// fragment's containing frame doesn't exist. The fragment
// may still be created …Run Code Online (Sandbox Code Playgroud) android android-fragments android-optionsmenu android-actionbar
在这些Android Docs的帮助下.我正在尝试做一个动作栏后退按钮.我得到一个动作栏后退按钮,如下图所示:

输出:
但我的问题是看完画廊图像后我按下了action bar back button.
然后it is not working.但它必须go back to previous page.
下面列出的是编码.
GalleryActivity.java:
import android.app.ActionBar;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.NavUtils;
import android.view.MenuItem;
import com.fth.android.R;
public class GalleryActivity extends FragmentActivity {
private int position;
private static String id;
private static String name;
private DemoCollectionPagerAdapter mDemoCollectionPagerAdapter;
private ViewPager mViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gallery);
position = getIntent().getExtras().getInt("position");
id = getIntent().getExtras().getString("id");
name = getIntent().getExtras().getString("name");
mDemoCollectionPagerAdapter = new …Run Code Online (Sandbox Code Playgroud) 关于动作栏上的样式有很多问题,但我发现的那些问题与样式标签有关,或者答案对我不起作用.
问题非常简单.我希望能够更改操作栏中菜单项的文本样式(甚至只是颜色).
我读过这个:http : //android-developers.blogspot.com/2011/04/customizing-action-bar.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+blogspot%2FhsDu+%28Android+Developers+Blog% 29
这个问题: 在Android Honeycomb中设置一个动作栏
从中我已经整理了一个测试应用程序,我正在尝试使用以更改菜单项.它使用在eclipse android插件中创建的应用程序的所有默认值,但以下情况除外.
样式文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyAppTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.ActionBar">
<item name="android:titleTextStyle">@style/MyActionBar.TitleTextStyle</item>
<item name="android:actionMenuTextAppearance">@style/MyActionBar.MenuTextStyle</item>
</style>
<style name="MyActionBar.TitleTextStyle"
parent="android:style/TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:textColor">#F0F</item>
<item name="android:textStyle">bold</item>
<item name="android:textSize">24dip</item>
</style>
<style name="MyActionBar.MenuTextStyle"
parent="android:style/TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:textColor">#F0F</item>
<item name="android:textStyle">bold</item>
<item name="android:textSize">24dip</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
操作栏的菜单:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:showAsAction="always|withText" android:icon="@android:drawable/ic_menu_edit"
android:id="@+id/menu_item1" android:title="menu_item1"></item>
<item android:showAsAction="always|withText" android:icon="@android:drawable/ic_menu_edit"
android:id="@+id/menu_item2" android:title="menu_item2"></item>
</menu>
Run Code Online (Sandbox Code Playgroud)
主要活动:
public class Main extends Activity {
@Override
public void onCreate(Bundle …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我经常启用/禁用菜单条目,并从onPrepareOptionsMenu中看到它们.
今天我开始将android:showAsAction菜单属性添加到我的一些Android 2.x应用程序中,以显示ActionBar上最常用的菜单条目.
ActionBar不会立即反映启用/禁用和可见性.我需要点击右边的菜单下拉菜单才能看到这种变化.
好的,我知道菜单会在PrepareOptionsMenu上触发.但是我需要做些什么才能刷新ActionBar?我认为这个变化需要从onOptionsItemSelected中应用,但我不知道应该调用什么.
这是菜单:
<item
android:icon="@drawable/ic_menu_mapmode"
android:id="@+id/men_mapview"
android:showAsAction="ifRoom|withText"
android:title="@string/txt_mapview" />
<item
android:icon="@drawable/ic_menu_mapmode"
android:id="@+id/men_satelliteview"
android:showAsAction="ifRoom|withText"
android:title="@string/txt_satelliteview" />
Run Code Online (Sandbox Code Playgroud)
这是onPrepareOptionsMenu:
@Override
public boolean onPrepareOptionsMenu(final Menu menu) {
MenuItem menuItemMapView = menu.findItem(R.id.men_mapview);
MenuItem menuItemSatelliteView = menu.findItem(R.id.men_satelliteview);
if (mapView.isSatellite()) {
menuItemMapView.setEnabled(true).setVisible(true);
menuItemmenuItemSatelliteView.setEnabled(false).setVisible(false);
} else {
menuItemMapView.setEnabled(false).setVisible(false);
menuItemmenuItemSatelliteView.setEnabled(true).setVisible(true);
}
return super.onPrepareOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)
这是onOptionsItemSelected
@Override
public boolean onOptionsItemSelected(final MenuItem menuItem) {
switch (menuItem.getItemId()) {
case R.id.men_mapview:
mapView.setSatellite(false);
mapView.setStreetView(true);
mapView.invalidate();
invalidateOptionsMenu(); // This works on Android 3.x devices only
return true;
case R.id.men_satelliteview:
mapView.setSatellite(true);
mapView.setStreetView(false);
mapView.invalidate(); …Run Code Online (Sandbox Code Playgroud) 使用ActionBarSherlockin xml时:
<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
Run Code Online (Sandbox Code Playgroud)
我收到了这个错误:
android:actionBarStyle requires API level 11 (current min is 8) error
Run Code Online (Sandbox Code Playgroud)
我正在使用它将我的应用程序与操作栏一起移植到2.2设备.
如何将它们一起使用:
<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
Run Code Online (Sandbox Code Playgroud) 我想实现自定义ActionBar,必须如下所示:

所以问题:
ActionBar?ActionBar或什么?如何删除操作栏中默认显示的应用程序图标和标题?
这里有一个类似的问题:我可以隐藏Honeycomb的Action Bar中的App图标吗?,但它没有谈论如何做到这一点?
我正在尝试使用谷歌的新api,特别是动作栏.
当构建设置为api 10时,如果我按下菜单按钮,我会看到漂亮的菜单选项,每个选项都带有图片和图标.当使用api 14时,无论我尝试什么,它总是将图标放在操作栏中,没有文字.我已经尝试了我能想到的一切.我给了它"with text"属性,将文本更改为单个字符(如果是房间问题),但没有.
我之前已经看过这个,甚至在android.developer的开发者指南中,但我似乎无法找到答案如何让它出现.
我在ActionBar中有一个searchView.我想在用户完成输入时关闭键盘.我在searchView上有以下queryTextListener
final SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextChange(String newText) {
// Do something
return true;
}
@Override
public boolean onQueryTextSubmit(String query) {
showProgress();
// Do stuff, make async call
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
return true;
}
};
Run Code Online (Sandbox Code Playgroud)
基于类似的问题,以下代码应该关闭键盘,但在这种情况下它不起作用:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(searchView.getWindowToken(), 0);
Run Code Online (Sandbox Code Playgroud)
两者都不起作用.我不确定这是否是Honeycomb特定的问题,或者它是否与ActionBar中的searchView相关,或两者兼而有之.有没有人得到这个工作或知道为什么它不起作用?