編輯:關於Android編程
在上一篇關於ActionBar的博文中,我們知道了ActionBar是Android3.0的重要更新之一。本篇博文就來寫一個開發中經常用到的例子。用ActionBar提供基於下拉的導航方式。
下拉式導航的ActionBar在頂端生成下拉列表框,當用戶單擊某個列表項時,系統根據用戶單擊導航指定Fragment。
為了使用ActionBar實現Tab導航,按如下步驟進行即可。
(1)調用ActionBar的actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST)方法設置使用下拉列表的導航方式。
(2)調用ActionBar的setListNavigationCallbacks(SpinnerAdapter adapter,ActionBar.OnNavigationListener callback)()添加多個列表項,並為每個列表項設置事件監聽器。其中第一個參數Adapter負責提供多個列表項,第二個參數為事件監聽器。
首先來看看布局文件
這裡的布局文件只是作為一個簡單的容器,來裝載Fragment。
下面來看一下MainActivity的源碼:package com.gc.actionbar_dropdownnav; import android.os.Bundle; import android.annotation.SuppressLint; import android.app.ActionBar; import android.app.ActionBar.OnNavigationListener; import android.app.Activity; import android.app.Fragment; import android.app.FragmentTransaction; import android.view.Menu; import android.widget.ArrayAdapter; /** * * @author Android將軍 * */ @SuppressLint("NewApi") public class MainActivity extends Activity implements OnNavigationListener{ private static final String SELECTED_ITEM="selected_item"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final ActionBar actionBar=getActionBar(); //設置ActionBar是否顯示標題 actionBar.setDisplayShowTitleEnabled(true); //設置導航模式,使用List導航 actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); //為actionBar安裝ArrayAdapter actionBar.setListNavigationCallbacks(new ArrayAdapter(MainActivity.this, android.R.layout.simple_list_item_1,android.R.id.text1,new String[]{"第一頁","第二頁","第三頁"}), this); } @Override public boolean onNavigationItemSelected(int itemPosition, long itemId) { // 創建一個新的Fragment對象 Fragment fragment=new DummyFragment(); //創建一個Bundle對象,用於向Fragment傳入參數 Bundle args=new Bundle(); args.putString(DummyFragment.ARG_SECTION_NUMBER, "Android將軍"+(itemPosition+1)); //向fragment傳入參數 fragment.setArguments(args); //獲取FragmentTransaction對象 FragmentTransaction ft=getFragmentManager().beginTransaction(); //使用fragment代替該Activity中的container ft.replace(R.id.container, fragment); //提交事務 ft.commit(); return true; } }
本案例中用到的DummyFragment的源碼如下:
package com.gc.actionbar_dropdownnav; import android.annotation.SuppressLint; import android.app.Fragment; import android.os.Bundle; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; public class DummyFragment extends Fragment{ public static final String ARG_SECTION_NUMBER="section_number"; //該方法的返回值就是該Fragment顯示的View組件 @SuppressLint("NewApi") @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub TextView textView=new TextView(getActivity()); textView.setGravity(Gravity.START); //獲取創建該Fragment時傳入的參數Bundle Bundle args=getArguments(); //設置TextView顯示的文本 textView.setText(args.getString(ARG_SECTION_NUMBER)+""); textView.setTextSize(30); return textView; } }
案例效果如下圖所示:
轉載請注明出處:http://blog.csdn.net/android_jiangjun/article/details/38434965
一,Activity生命周期相信不少朋友也已經看過這個流程圖了,也基本了解了Activity生命周期的幾個過程,我們就來說一說一些常見操作的生命周期執行情況吧(1) 啟動
因為Android軟件開發分工目前還沒有細化,程序員往往需要負責軟件界面的開發,雖然軟件的界面圖片已經由美工設計好了,但是如果使用layout技術把軟件做成漂亮的界面確實
這篇文章將給大家介紹android圖片處理的高效做法,大家有需求的時候可以參考一下。首先我要說明一下本實例中實現的效果(我還不會制作gif圖,如果誰會的話,希望可以教一下
FragmentManager 為了管理Activity中的fragments,需要使用FragmentManager. 為了得到它,需要調用Activity中的getF