2012-04-14 41 views
11

我想在我自己的項目上使用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

回答

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. 覆蓋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

9

此答案描述瞭如何使用新的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,博客文章由加布裏埃萊·馬里奧蒂