2012年10月26日 星期五

Android ActionBarSherlock Action Items

  由於Action Bar 本身不支援2.x版本,所以利用ActionBarSherlock Library 實作 Action Bar效果,此範例簡單利用SherlockActivity將Action Bar實作出來,在這裡Action Bar實作方式其實就跟普通建立menu一樣,其中的差別在於SherlockActivity會依照銀幕寬度自動調整在Action Bar中顯示的項目,超過的項目則會在menu中顯示。

參考網站:http://actionbarsherlock.com/

注意事項:

  • 必須setTheme(R.style.Theme_Sherlock);
  • 必須加入ActionBarSherlock 的 Library
  •  compiling JDK 1.6
  • Library 的 Android SDK 4.0 或 更新的版本

import android.os.Bundle;
import android.widget.Toast;

import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;


public class MainActivity extends SherlockActivity {
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
                        
        menu.add("Save")
        .setIcon(R.drawable.abs__ic_cab_done_holo_dark)
        .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTIO         N_WITH_TEXT);

        menu.add("Search")
        .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTIO        N_WITH_TEXT);

        menu.add("Refresh")
        .setIcon(R.drawable.abs__spinner_48_inner_holo)
        .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTIO        N_WITH_TEXT);

        return true;
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        Toast.makeText(this, item.getTitle(),Toast.LENGTH_SHORT).show();      
        return false;
    }
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        setTheme(R.style.Theme_Sherlock);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

沒有留言:

張貼留言