ActionBarCompat - 如何使用它

问题描述:

我想在我自己的项目上使用ActionBarCompat。 我已经打开了示例项目(http://developer.android.com/resources/samples/ActionBarCompat/index.html),但我不知道如何自己实现它。ActionBarCompat - 如何使用它

我找不到任何类型的教程。 我应该把这个项目作为一个图书馆吗? 有人可以给我一些方向,请。

+1

我去ActionBarSherlock ... – 2012-05-03 13:20:49

+0

看起来在过去一年的某个时候,Google删除了他们的ActionBarCompat样本(和其他样本)的在线版本。有什么地方可以链接到更新的链接? – 2013-05-22 14:58:27

至于实施,只需坚持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. 覆盖onCreateOptionsMenu()这样一个活动它会夸大您在步骤#1中编码​​的菜单
  4. 重写onOptionsItemSelected()以便您在用户点击您在步骤#1中定义的任何ActionBar项目时处理该事件。

我认为从ActionBarCompat代码构建一个Android库项目是有意义的;那么你可以从你的自定义Android项目中引用它。请记住它的许可证号是Apache许可证2.0版

+0

伟大的点到待办事项列表!谢谢我遵循你的列表,根据你的建议设置ActionBarCompat为一个库项目。 一切正常,但应用程序的标志。 它始终是ActionBarCompat应用程序的标志,直到我发现它是(种类)在ActionBarCompat中硬编码的名为ic_home(.png) 因此,我会在列表中添加一个附加点: 5.创建一个图标在您的项目名为ic-home(.png)的“可绘制”文件夹中 – Addi 2012-06-27 22:41:18

+0

Andres我如何将它制作成图书馆?此外,有关链接现在已被打破。任何指针? – StuStirling 2012-12-04 16:37:08

+0

@ DiscoS2如果你想把它变成一个库,你只需要在IDE中指定它作为一个库。在Eclipse中,进入项目设置> android,向下滚动并选中'library'。在IntelliJ中,您将模块指定为库。 – 2013-02-07 22:07:31

此答案描述了如何使用新的ActionBarCompat库(2013年7月)。

Android Studio中,开放build.gradle和补充一点:

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

Eclipse中,在sdk\extras\android\support\v7\appcompat创建基于代码library project并将其添加到您的项目。

活动必须延伸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,博客文章由加布里埃莱·马里奥蒂