編輯:Android開發教程
轉載請注明:http://www.cnblogs.com/igoslly/p/6911165.html
由於最近廢寢忘食地在開發App,沒來得及及時做總結,沒有用很高級的部件,勉強也使用一些功能完成了自己的第一個App,撒花~~~
接下來都是自己在開發中使用後的一些經驗,也是和他人學習實踐後的成果,主要是關於Fragment。
/* 添加Fragment有靜態添加 & 動態添加兩種方式 * 靜態是在Layout布局中添加<Fragment>控件 * 由於可以設置id,則可通過id尋找 */ <Fragment android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/fragment1"/> /* 動態添加fragment則完全在程序中定義添加 * 添加同時設定TAG,通過TAG尋找實例(見後Transaction) */ // 對activity中的Fragment進行管理,需要通過Fragment Manager FragmentManager manager = getFragmentManager(); manager.findFragmentById(); //根據ID查找 manager.findFragmentByTag();//根據TAG查找 manager.getFragments();//獲取所有被ADD進Activity中的Fragment /*對當前的Fragment進行管理,使用FragmentTransaction *Transcation則控制Fragment的顯示、添加、替換等等,如add/remove/replace *commit()對操作的Fragemnt提交到系統,進行顯示 */
replace(R.id.content_frame,fragment).commit(); //替換——刪除添加操作
add(R.id.container,fragment1,String tag); //添加fragment,並設置動態查找TAG
remove(fragment1); //刪除
/* 故而Fragment常被用於導航欄的切換內容 * 每點擊導航欄不同圖標,系統便調用響應的Fragment布局和內容,較為方便
========================================================================================================== * Activity或Fragment向Fragment之間的參數傳遞*/ Bundle args = new Bundle(); args.put("value_key",value); //value_key是在傳輸讀取中約定的關鍵詞 //傳輸值可以為多種類型,int,String,Array等等 Fragment fragment = new Fragment(); fragment.setArguments(args); //將bundle傳給fragment //fragment讀取值 red = getArguments().getInt("value_key1"); yellow = getArguments().getString("value_key2"); //==========================================================================================================
//當需要從Fragment返回原活動時,需要設置fragment連接 aheadDialogue.setTargetFragment(CompetitionFragment.this,REQUEST_CODE); getFragmentManager().beginTransaction().replace(R.id.content_frame, fragment1).addToBackStack(null).commit(); getFragmentManager().popBackStack(); //返回 //原Fragment接收返回值,在onActivityResult進行定義 //request_code是用戶自定義integer //resultCode通常是活動狀況,是否正常結束 public void onActivityResult(int requestCode, int resultCode, Intent data) { // super.onActivityResult(requestCode, resultCode, data); // 可判斷不同requestCode接受不同返回值操作 if (requestCode==0x1001) { if (resultCode != Activity.RESULT_OK) { //這裡再對activity狀態進行判斷 return; } else { hitPlayer = data.getStringExtra("hitplayer"); hitNumber = data.getIntExtra("hitnumber", 0); } } if (requestCode==0x1111) { //blablabla } }
推薦介紹Fragment挺詳細的blog:http://blog.csdn.net/harvic880925/article/details/44927375
本筆記內容均為個人學習整理,轉載請注明博客園-igoslly
一、為何寫作此文你是不是經常看到很多書籍中說:不能在子線程中操作ui,不然會報錯。你是不是也遇到了如下的疑惑(見下面的代碼): (Bundle savedI
編寫本文的背景隨著智能電話使用率的增長,越來越多的基於 Web 的應用程序開始提供從移動客 戶端訪問的能力,無論該客戶端是浏覽器還是原生應用程序。在這兩種情況下,這些客戶
Device Admin示例介紹了類DeviceAdminReceiver,DevicePolicyManager和ActivityManager。類 DevicePol
SimpleAdapter作為一個數據集,主要向ListView、GridView容器填充數據,總結了幾種填充方式,原理很簡單,直接看代碼 和效果圖1、 ListView