我有动作栏menuitems取消并保存.
menu.xml文件
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/saveButton"
android:showAsAction="always"
android:title="@string/save"
android:visible="true">
</item>
<item android:id="@+id/cancelButton"
android:showAsAction="always"
android:title="@string/cancel"
android:visible="true">
</item>
</menu>
Run Code Online (Sandbox Code Playgroud)
我想在活动开始时禁用保存menuitem.
我的活动代码 -
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.add_project);
EditText projectName = (EditText) findViewById(R.id.editTextProjectName);
projectName.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
configureSaveButton(s);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,int after) {}
@Override
public void afterTextChanged(Editable s) {}
});
}
@Override
public …Run Code Online (Sandbox Code Playgroud) 我有这些菜单项 menu_main.xml
<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/action_restart" android:title="Restart"
android:orderInCategory="1" />
<item android:id="@+id/action_clear" android:title="Clear"
android:orderInCategory="2" />
<item android:id="@+id/action_update" android:title="Update"
android:orderInCategory="3" />
<item android:id="@+id/action_about" android:title="About"
android:orderInCategory="4" />
<item android:id="@+id/action_try_restart" android:title="Try Restart"
android:orderInCategory="5" />
</menu>
Run Code Online (Sandbox Code Playgroud)
我的onOptionsItemSelected方法中有这个:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == …Run Code Online (Sandbox Code Playgroud) [UPDATE]
我通过添加addHeaderView解决了这个问题:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTitle = mDrawerTitle = getTitle();
mPlanetTitles = getResources().getStringArray(R.array.planets_array);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.left_drawer);
LayoutInflater inflater = getLayoutInflater();
ViewGroup mTop = (ViewGroup)inflater.inflate(R.layout.header_listview_menu, mDrawerList, false);
mDrawerList.addHeaderView(mTop, null, false);
Run Code Online (Sandbox Code Playgroud)
================================
我的问题很简单!
我想如何在导航抽屉中添加标题?
我已经为每个项目创建了带有listview(图标+文本)的导航抽屉.
非常感谢,

我在Android Studio中创建了一个Android应用程序,并希望在其上创建一个选项菜单.我创建它作为一个空活动,现在意识到我会更好地创建一个空白活动来获取选项菜单.无论如何都要在空活动中创建选项菜单.如果有人能指点我的教程会很棒,这是我目前为止我的菜单代码.
menu_menu
<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="saveourcar.soc.MainActivity">
<item
android:id="@+id/action_Menu"
android:orderInCategory="100"
android:title="Menu"
app:showAsAction="never" >
<menu>
<item
android:id="@+id/instructions"
android:title="Instructions"
android:icon="@drawable/bg"/>
<item
android:id="@+id/hotels"
android:title="Hotels"
android:icon="@drawable/mechanic"/>
</menu>
</item>
</menu>
Run Code Online (Sandbox Code Playgroud)
主要活动
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_Menu) {
return true;
}
return super.onOptionsItemSelected(item);
}
Run Code Online (Sandbox Code Playgroud) 我检查了其他类似的帖子,他们建议清理构建路径,但这根本没有帮助.
我已经启动了Android应用程序开发,并且在向活动添加菜单时遇到了令人沮丧的问题.
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/save_tea" android:title="@string/save_tea_label" />
</menu>
Run Code Online (Sandbox Code Playgroud)
这会在Eclipse控制台中抛出"错误XML块:标头大小60或总大小3932356大于数据大小0".我有一个主应用程序活动的菜单,它工作正常,但这个不能合并到R生成的文件.
我重写了一堆我的页面,它现在似乎工作,所以我要么错过了原来的东西,要么eclipse决定重新评估文件.
请有人帮帮我!我尝试将appcompat搜索视图添加到我的项目中.不成功.当我将android.support.v7.widget.SearchView更改为SearchView(API> 10)时,一切都很好.
我的菜单res:
<item android:id="@+id/action_search"
android:title="@string/search_view_title"
android:icon="@drawable/action_search"
sabd:showAsAction="always|collapseActionView"
sabd:actionViewClass="android.support.v7.widget.SearchView" />
Run Code Online (Sandbox Code Playgroud)
这是我如何尝试使用SeachView:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.teach, menu);
mSearchItem = menu.findItem(R.id.action_search);
mSearchItem.setVisible(true);
mSearchView = (SearchView) MenuItemCompat.getActionView(mSearchItem);
mSearchView.setQueryHint(getString(R.string.search_view_hint));
mSearchView.setOnQueryTextListener(this);
}
Run Code Online (Sandbox Code Playgroud)
这是我的清单文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="ru.rgups.time"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.Base.AppCompat.Light"
android:name="RTApplication">
<activity
android:name="ru.rgups.time.MainActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".fragments.WelcomeActivity"></activity>
<service android:name=".spice.SampleSpiceService"></service>
<activity …Run Code Online (Sandbox Code Playgroud) 我一直在开发的应用程序使用ActionBarSherlock,主题继承自Theme.Sherlock.Light.DarkActionBar.该设计要求溢出菜单弹出窗口具有深色背景和白色文本.这适用于没有物理菜单按钮的设备,文本显示为预期的白色.但是,如果设备具有物理菜单按钮,则显示的菜单中显示的文本仍为黑色.
我的主题包含
<item name="android:panelBackground">@drawable/menu_hardkey_panel</item>
Run Code Online (Sandbox Code Playgroud)
...其中@ drawable/menu_hardkey_panel是深色9patch.
菜单弹出窗口的结果是...... 
我无法确定为什么会发生这种情况,或者如何手动更改文本的颜色.在我的主题中,我尝试了以下所有内容......
<item name="android:actionMenuTextColor">@android:color/white</item>
<item name="android:textAppearanceLargePopupMenu">@style/MyMenuTextAppearance.Large</item>
<item name="android:textAppearanceSmallPopupMenu">@style/MyMenuTextAppearance.Small</item>
Run Code Online (Sandbox Code Playgroud)
我甚至试过了
<item name="android:actionBarWidgetTheme">@style/Theme.MyApp.Dark</item>
Run Code Online (Sandbox Code Playgroud)
...... Theme.MyApp.Dark在哪里......
<style name="Theme.MyApp.Dark" parent="@style/Theme.Sherlock">
<item name="android:dropDownListViewStyle">@style/DropDownListView</item>
<item name="dropDownListViewStyle">@style/DropDownListView</item>
</style>
Run Code Online (Sandbox Code Playgroud)
没有人允许我将文本更改为白色.如果我让我的基本主题继承自Theme.Sherlock,问题就解决了,文本是白色的,但不幸的是,这不是一个选项.
我试图在片段内创建一个上下文菜单项.但是我遇到了getMenuInflater()方法的问题.这是未定义的.我已经导入了所有必要的包.谁能指出我在这里做错了什么?
这是我的代码:
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MenuInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.view.MenuItem;
public class FeaturedFragment extends Fragment {
public FeaturedFragment() {
}
public static final String ARG_SECTION_NUMBER = "section_number";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.featured_fragment,container,false);
registerForContextMenu(view);
return view;
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo)
{
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater(); …Run Code Online (Sandbox Code Playgroud) 有什么方法(如果有办法)自定义菜单(由手机的MENU按钮触发的菜单).我对两件事特别感兴趣:
我正在使用Jake Wharton出色的ActionBarSherlock库并具有可折叠的搜索操作视图.我想在展开搜索操作视图时弹出软键盘.
我们可以在Google的" Using DialogFragments "博客文章中阅读一个推荐的方法,在DialogFragment中进行此操作(为了便于阅读,稍作修改).
// Show soft keyboard automatically
mEditText.requestFocus();
int mode = WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE;
getDialog().getWindow().setSoftInputMode(mode);
Run Code Online (Sandbox Code Playgroud)
在扩展和请求关注可折叠的EditText操作视图时,这似乎不起作用.我现在有这个.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.my_activity, menu);
MenuItem menuItem = menu.findItem(R.id.menu_search);
final EditText searchText = (EditText) menuItem.getActionView();
menuItem.setOnActionExpandListener(new OnActionExpandListener() {
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
return true; // Return true to collapse action view
}
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
searchText.requestFocus();
int mode = WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE;
getWindow().setSoftInputMode(mode);
return true; // …Run Code Online (Sandbox Code Playgroud) android android-softkeyboard android-menu actionbarsherlock android-actionbar