ActionBarCompat - 如何使用它

Fre*_*ers 11 android android-actionbar android-actionbar-compat

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

我找不到任何类型的教程.我应该把这个项目作为一个图书馆吗?请有人给我一些指示.

And*_*hon 22

至于实现,只需坚持在MainActivity.java类下提供的示例代码.你可以在这里或下面找到它<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版获得许可的.


Mat*_*ers 9

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

Android Studio中,打开build.gradle并添加以下内容:

dependencies {
    compile 'com.android.support:appcompat-v7:18.0.+'
}
Run Code Online (Sandbox Code Playgroud)

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

主题必须是(或扩展)Theme.AppCompat主题之一,例如:

<activity android:theme="@style/Theme.AppCompat.Light" ... />
Run Code Online (Sandbox Code Playgroud)

来源:如何将ActionBarCompat添加到您的项目中,Gabriele Mariotti的博客文章