編輯:關於Android編程
本文介紹ActionBar與Fragment結合使用的一個實例,ActionBar是一個標識應用程序和用戶位置的窗口功能,並且給用戶提供操作和導航模式。
Action bar的主要用途是:
1. 提供一個用於識別應用程序的標示和用戶的位置的專用空間。
這個空間的左邊是應用的圖標或logo,以及Activity的標題。但是,如果是像當前選擇的標簽這樣的標識當前View對象的導航標簽,你可以選擇刪除Activity的標題。
2. 在不同的應用程序之間提供一致的導航和視覺體驗。
Action bar提供了用於Fragment間切換的內置導航標簽。它還提供了一個用於替換導航模式或優化當前視覺效果(如按照不同條件排序的列表)的下拉列表。
3. 突出Activity的關鍵操作(如“搜索”、“創建”、“共享”等),並且在可預見的方法內給用戶提供快捷的訪問。
實現效果圖:
源代碼:
布局文件:
activity_main:<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+uMNNYWluQWN0aXZpdHm1xLK8vtbW0KOs0ru49kZyYWdtZW501bzB7MHLy/nT0LXEQWN0aXZpdHmyvL7Wv9W85KGjPC9wPgo8cD48cHJlIGNsYXNzPQ=="brush:java;">
file.xml:
FragmentDemo9_Menu Settings Hello world! 系統管理 文件管理 產品管理
MainActivity:
package com.fragmentdemo9_menu; import android.app.Activity; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; /** * ActionBar與Fragment結合使用的實例Demo * */ public class MainActivity extends Activity { private FragmentManager manager; private FragmentTransaction transaction; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); manager = getFragmentManager(); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { transaction = manager.beginTransaction(); switch (item.getItemId()) { /** * 系統管理 */ case R.id.sys: SysFragment sysFragment = new SysFragment(); transaction.replace(R.id.main, sysFragment, "sysFragment"); transaction.addToBackStack("sysFragment"); Toast.makeText(this, "您點擊了系統管理", Toast.LENGTH_SHORT).show(); break; /** * 文件管理 */ case R.id.file: FileFragment fileFragment = new FileFragment(); transaction.replace(R.id.main, fileFragment, "fileFragment"); transaction.addToBackStack("fileFragment"); Toast.makeText(this, "您點擊了文件管理", Toast.LENGTH_SHORT).show(); break; /** * 產品管理 */ case R.id.product: ProductFragment productFragment = new ProductFragment(); transaction.replace(R.id.main, productFragment, "productFragment"); transaction.addToBackStack("productFragment"); Toast.makeText(this, "您點擊了產品管理", Toast.LENGTH_SHORT).show(); break; } transaction.commit(); return super.onOptionsItemSelected(item); } }
package com.fragmentdemo9_menu; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; /** * 系統管理相關的Fragment * */ public class SysFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.sys, null); return view; } }FileFragment:
package com.fragmentdemo9_menu; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; /** * 文件管理相關的Fragment * */ public class FileFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.file, null); return view; } }
package com.fragmentdemo9_menu; import java.util.ArrayList; import android.app.ListFragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; /** * 產品管理相關Fragment,展示的是一個List列表數據。 * */ public class ProductFragment extends ListFragment { private ArrayAdapteradapter; private ArrayList list; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); list = new ArrayList (); for (int i = 0; i < 30; i++) { list.add("rose" + i); } adapter = new ArrayAdapter (getActivity(), android.R.layout.simple_list_item_1, list); setListAdapter(adapter); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return super.onCreateView(inflater, container, savedInstanceState); } }
點擊下載源碼
其實適配器模式在Android源碼中非常多,而從整體的源碼角度上來看Activity的結構就是一種適配器模式。從這個角度上面看Activity,對Activity和應用層
利用Android的ViewFlipper和AnimationUtils實現圖片帶有動畫的輪播切換,其中當點擊“上一張”圖片時,切換到上一張圖片;當點擊“下一張”圖片時,
一、調用Android lint命令查找出沒有用到的資源,並生成一個清單列表:命令:lint –check “UnusedResources” [project_path
Activity的生命周期圖2 Android生命周期中涉及到的幾個過程 1.啟動Activity:系統會先調用onCreate方法,然後調用onStart方法,最後