2015-04-09 3 views
2

Я новичок в Android &, пытаясь следовать учебным пособиям. Начальный учебник шло хорошо, но потом я ударил этого одинИконки кнопки Android для Android отсутствуют

https://developer.android.com/training/basics/actionbar/adding-buttons.html

где я нахожу, что я не могу получить кнопки действий, чтобы отобразить значок. Даже если я устанавливаю

android:showAsAction="always" 

В попытке обойти эту проблему, я начал еще один подобный учебник

http://www.androidhive.info/2013/11/android-working-with-action-bar/

, но только в конечном итоге удара один и тот же вопрос.

Я использую API 11 &, не приближаясь к комплекту поддержки. Я могу получить текст для пунктов меню, которые будут отображаться в раскрывающемся списке. Просто не может показаться, что есть значки.

Я попробовал оба набора значков из набора значков Action Bar. Моя папка Рез имеет следующую структуру Drawable

- drawable 
- drawable-hdpi 
- drawable-mdpi 
- drawable-xhdpi 
- drawable-xxhdpi 

ни с чем в рисуемых & соответствующие иконки в другие папки.

Это похоже на такой базовый шаг, что я удивлен, что застрял.

Любые предложения?

Edit: Добавление кода, как предложено

MainActivity.java

package com.example.gannons.actionbar; 

import android.support.v7.app.ActionBarActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 

public class MainActivity extends ActionBarActivity { 

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


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.activity_main_actions, 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(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 
} 

activity_main_actions.xml

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
<!-- Search/will display always --> 
<item android:id="@+id/action_search" 
    android:icon="@drawable/ic_action_search" 
    android:title="@string/action_search" 
    android:showAsAction="always" 
/> 

<!-- Location Found --> 
<item android:id="@+id/action_location_found" 
    android:icon="@drawable/ic_action_location_found" 
    android:title="@string/action_location_found" 
    android:showAsAction="always" 
/> 

Также я использую Android Studio, в том случае, делает разница.

+0

Вы использовали 'android: icon' в своем меню xml? Иногда бывает легко пропустить простые шаги (включая меня) –

+1

Опубликуйте свой полный ресурс меню, а также свою активность, загружающую ресурс меню. – CommonsWare

ответ

1

Поскольку ваша активность распространяется ActionBarActivity, вы фактически, используя библиотеку поддержки (как рекомендуется, если вы хотите что-то, что выглядит в соответствии с API11 + - помните, по умолчанию выглядит очень отличается от API21 +). Вы можете переключить свою деятельность на расширение Activity, и вы будете использовать версию фреймворка панели действий, которая будет работать с вашим activity_main_actions.xml, как вы писали.

В противном случае измените ваш android:showAsAction на app:showAsAction и он будет выглядеть последовательно и последовательно действовать во всех версиях API.

+0

Спасибо. Решение для меня было в action_main_actions.xml для добавления в

, который затем позволил мне установить приложение: showAsAction =" always ". –

Смежные вопросы