android之ActionBarActivity的用法
阿新 • • 發佈:2019-02-20
ActionBarActivity是從api 18(android4.3) 開始出現的(需要專案匯入v7包),而在這之前,api11上就允許使用ActionBar了。其實ActiveBarActivity的使用非常簡單,不過網上demo比較沒有詳細介紹的。
我將通過一個例子來詳細ActionBarActivity的使用。
1、首先建立一個簡單的android專案,專案名稱為ActionBarActivityDemo。注意:target中的api需要在api18以上
2、我們自己寫的一個方法(setActionBarLayout),該方法設定左、右邊的圖片及中間部分的標題欄資訊。
1)通過android.support.v7.app. ActionBarActivity.getSupportActionBar();獲得系統ActionBar物件,如果你建立的工程不是繼承ActionBarActivity,將會返回null。
2)使用LayoutInflater物件設定佈局,並設定ActionBar佈局引數,通過setCustomView(view,params);
public View setActionBarLayout(Integer left, String title, Integer right) { ActionBar actionBar = getSupportActionBar(); if (null != actionBar) { if (actionBar != null) { actionBar.setTitle(""); } actionBar.setDisplayShowTitleEnabled(false); actionBar.setDisplayShowHomeEnabled(false); actionBar.setDisplayShowCustomEnabled(true); LayoutInflater inflator = (LayoutInflater) this .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View v = inflator.inflate(R.layout.actionbar, null); ActionBar.LayoutParams layout = new ActionBar.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); actionBar.setCustomView(v, layout); ((TextView) v.findViewById(R.id.menu_title_tv)).setText(title); v.findViewById(R.id.menu_title_tv).setOnClickListener(this); if (left != null) { ((ImageButton) v.findViewById(R.id.menu_left)) .setImageResource(left); } else { v.findViewById(R.id.menu_left).setVisibility(View.INVISIBLE); } if (right != null) { ((ImageButton) v.findViewById(R.id.menu_right)) .setImageResource(right); } else { v.findViewById(R.id.menu_right).setVisibility(View.INVISIBLE); } return v; } return null; }
3)設定左、右按鈕的事件。
@Override public void onClick(View arg0) { switch (arg0.getId()) { case R.id.menu_left: this.finish(); break; case R.id.menu_right: Intent intent = new Intent(this, MenuActivity.class); startActivity(intent); break; case R.id.menu_title_tv: Log.e(TAG, "title"); break; } }