Android:图标未显示在操作栏中

时间:2014-10-24 05:35:41

标签: android android-actionbar

我试图在操作栏中显示两个图标,其中一个是带有几个孩子的菜单。但是,我无法做到。我在SO中测试了其他类似问题的一些答案,但无济于事。甚至没有一个图标出现。这是代码。谢谢你的帮助。

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context="com.semantic.semanticOrganizer.sem.activities.HomeActivity" >

<item android:id="@+id/viewTags"
    android:icon="@drawable/ic_action_labels"
    app:showAsAction="always"
    android:title="Tags"
    />

<item
    android:id="@+id/a_More"
    android:icon="@drawable/ic_more_vert_white_36dp"
    app:showAsAction="always"
    android:title="More">
    <menu>
<item android:id="@+id/action_view_notes"
    android:title="Notes"
    android:orderInCategory="100"
    app:showAsAction="never" />

<item android:id="@+id/action_view_habits"
    android:title="Habits"
    android:orderInCategory="100"
    app:showAsAction="never" />
<item android:id="@+id/action_view_checklists"
    android:title="Checklists"
    android:orderInCategory="100"
    app:showAsAction="never" />
<item android:id="@+id/action_view_tags"
    android:title="Tags"
    android:orderInCategory="100"
    app:showAsAction="never" />
<item android:id="@+id/action_settings"
    android:title="@string/action_settings"
    android:orderInCategory="100"
    app:showAsAction="never" />
    </menu>

  </item>
</menu>

Java代码

public class HomeActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);

    stuffWhichDoesNotInvolveGettingActionBar();

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu items for use in the action bar
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.home, menu);
    return super.onCreateOptionsMenu(menu);
}


@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 == R.id.action_settings) {
        return true;
    }
    if (id == R.id.action_view_tags) {
        return true;

    }
    if (id == R.id.action_view_notes) {
        return true;
    }
    if (id == R.id.action_view_checklists) {
        return true;
    }
    if (id == R.id.action_view_habits) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}


private void stuffWhichDoesNotInvolveGettingActionBar(){
   //Code
}

编辑:正如Neutrino建议的那样,我尝试转向appCompat主题。但是这个error出现在Win64机器上。资源未找到属性“actionModeShareDrawable”的错误。我将compileSdkVersion更改为21并且它可以正常工作。所以,我现在可能不用AppCompat就可以了。我目前正在使用Holo。所以请建议修复Holo主题。

修改 我找到了一个解决我提到的错误的方法,使用支持库的v20而不是v21,因为我发现Gradle 2.3构建系统还不在Android中,并且该bug只在该版本中修复了(一个错误修复了Groovy 2.3.5发布了)。然后我就可以使用ActionBarActivity,现在可以看到操作栏图标。谢谢大家,特别是夸克。

2 个答案:

答案 0 :(得分:0)

扩展ActionBarActivity而不是Activity,即制作

public class HomeActivity extends Activity 

作为

public class HomeActivity extends ActionBarActivity

修改

现在不推荐使用

ActionBarActivity来支持工具栏。要使用工具栏,请使用 -

public class HomeActivity extends AppCompatActivity

请务必在build.gradle (Module: app) -

中添加最新版本的支持库
dependencies {
    compile 'com.android.support:appcompat-v7:22.1.1'
}

详细了解工具栏和AppCompatActivity hereherehere

答案 1 :(得分:0)

我尝试编译你的代码,以下内容对我有用。 对于要为其显示图标的所有菜单项,将app:showAsAction替换为android:showAsAction