2012-04-14 2 views
11

Я пытаюсь использовать ActionBarCompat в своем собственном проекте. Я уже открыл образец проекта (http://developer.android.com/resources/samples/ActionBarCompat/index.html), но я не знаю, как его реализовать самостоятельно.ActionBarCompat - как его использовать

Я не могу найти какой-либо учебник. Должен ли я сделать этот проект библиотекой? Может кто-нибудь дать мне несколько направлений, пожалуйста.

+1

Я пошел на ActionBarSherlock ... –

+0

Похоже, что в прошлом году Google удалил онлайн-версию своего примера ActionBarCompat (и каждого другого образца). Есть ли ссылки на обновленную ссылку? –

ответ

22

Что касается реализации, просто придерживайтесь образца кода, предоставленного под классом MainActivity.java. Вы можете найти его here или под <your local android-sdks folder>/samples/android-15/ActionBarCompat/src/com/example/android/actionbarcompat/MainActivity.java. В общем, все, что вам нужно сделать, это следующее:

  1. Код меню ресурс, на котором вы объявляете элементы для панели действий (см http://developer.android.com/resources/samples/ActionBarCompat/res/menu/main.html)
  2. Код деятельности, которая расширяет ActionBarActivity
  3. Override onCreateOptionsMenu() так что он надувает меню, которое вы кодировали на шаге # 1
  4. Переопределить onOptionsItemSelected() так, чтобы вы обрабатывали событие, когда пользователь удаляет любые элементы ActionBar, определенные вами на шаге 1.

Я думаю, что имеет смысл построить проект библиотеки Android из кода ActionBarCompat; то вы можете просто ссылаться на него из своего пользовательского проекта Android. Помните, что он лицензирован по лицензии Apache, версии 2.0.

+0

Отлично подходит к делу! Спасибо, что я выполнил ваш список, установите ActionBarCompat как проект библиотеки, как вы рекомендовали. Все работало, но логотип приложения. Он всегда был логотипом приложения ActionBarCompat, пока я не узнал, что он (вроде) жестко закодирован в ActionBarCompat с именем ic_home (.png) Таким образом, я бы добавил еще одну точку в список: 5. Создайте значок в папках «drawable» вашего проекта с именем ic-home (.png)
Addi

+0

Андрес, как мне сделать это в библиотеке?Кроме того, ссылка о теперь сломана. Любые указатели? – StuStirling

+0

@ DiscoS2 Если вы хотите сделать это в библиотеке, вам просто нужно назначить его как библиотеку в среде IDE. В Eclipse вы переходите к настройкам проекта> андроид, прокручиваете вниз и проверяете «библиотеку». В IntelliJ вы назначаете модуль как библиотеку. –

9

В этом ответе описывается, как использовать новую библиотеку ActionBarCompat (июль 2013 г.).

В Android Studio, открытой build.gradle и добавить:

dependencies { 
    compile 'com.android.support:appcompat-v7:18.0.+' 
} 

В Затмения, создать library project на основе кода в sdk\extras\android\support\v7\appcompat и добавить его в свой проект.

Деятельность должна продлить ActionBarActivity.

import android.support.v4.view.MenuItemCompat; 
import android.support.v7.app.ActionBarActivity; 
import android.support.v7.widget.SearchView; 
import android.support.v7.app.ActionBar; 
import android.view.Menu; 
import android.view.MenuItem; 

public class MainActivity extends ActionBarActivity { 

    ActionBar ab; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     ab = getSupportActionBar(); 
     ab.setTitle("Test"); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.main, menu); 

     MenuItem searchItem = menu.findItem(R.id.action_search); 
     SearchView searchView = 
        (SearchView) MenuItemCompat.getActionView(searchItem); 

     return super.onCreateOptionsMenu(menu); 
    } 
} 

Темы должны быть (или продлить) одна из тем Theme.AppCompat, например:

<activity android:theme="@style/Theme.AppCompat.Light" ... /> 

Источник: How to add ActionBarCompat to your project, блог Габриэле Мариотти