ActionBarCompat - как его использовать
Я пытаюсь использовать ActionBarCompat в своем собственном проекте.
Я уже открыл образец проекта (http://developer.android.com/resources/samples/ActionBarCompat/index.html), но я не знаю, как его реализовать самостоятельно.
Я не могу найти какой-либо учебник.
Должен ли я сделать этот проект библиотекой?
Может кто-нибудь дать мне некоторые указания, пожалуйста.
Ответы
Ответ 1
Что касается реализации, просто придерживайтесь образца кода, предоставленного в классе MainActivity.java
. Вы можете найти здесь здесь или под <your local android-sdks folder>/samples/android-15/ActionBarCompat/src/com/example/android/actionbarcompat/MainActivity.java
. В общем, все, что вам нужно сделать, это следующее:
- Код ресурса меню, где вы объявляете элементы для панели действий (см. http://developer.android.com/resources/samples/ActionBarCompat/res/menu/main.html)
- Введите команду, которая расширяет
ActionBarActivity
- Переопределить
onCreateOptionsMenu()
так, чтобы он надул меню, которое вы закодировали на шаге # 1
- Переопределить
onOptionsItemSelected()
так, чтобы вы обрабатывали событие, когда пользователь удаляет любые элементы ActionBar, определенные вами на шаге 1.
Я думаю, что имеет смысл построить проект библиотеки Android из кода ActionBarCompat; то вы можете просто ссылаться на него из своего пользовательского проекта Android. Помните, что он лицензирован в соответствии с лицензией Apache версии 2.0.
Ответ 2
В этом ответе описывается, как использовать новую библиотеку ActionBarCompat (июль 2013 г.).
В Android Studio откройте build.gradle
и добавьте следующее:
dependencies {
compile 'com.android.support:appcompat-v7:18.0.+'
}
В Eclipse создайте проект на основе кода в 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" ... />
Источник: Как добавить ActionBarCompat в свой проект, сообщение в блоге Gabriele Mariotti