編輯:關於Android編程
Activity是應用程序的入口。負責創建才窗口(setContextView(View)),和用戶交互等。
首先定義一個類繼承自android.app.Activity,在AndroidManifest.xml文件的application標簽裡聲明一個activity即可。
一般一個程序可能會有多個Activity,需要指定程序運行時首先加載的Activity,在activity標簽內部需要定義action 和category 。首先運行這個Activity。
一個Activity例子。設置ContentView,獲取視圖上的按鈕,添加事件。
Java代碼
AndroidManifest配置。
Xml代碼
AndroidManifest中的通常設置:
android:launchMode
啟動模式
standard,singleTop,singleTask ,singleInstance,
android:screenOrientation
屏幕
landscape橫屏,portrait豎屏
android:label
標題名稱
直接寫字符,或引用xml文件中的@string/
android:name
Activity類名
注意.。一般是manifest的package加name等於Activity類帶包名的全稱
Java常用方法
setContentView()
設置Activity視圖
參數可以是①res/layout中的xml文件,通過R.layout獲取int的id。②View類型的視圖。
findViewById
尋找View,在XML
R中的id。一般設置setContentView為R中的layout,通過這個方法尋找每個組件的引用。
Java其他方法
去標題
super.requestWindowFeature(Window.FEATURE_NO_TITLE)需要在執行setContentView之前操作,否則報錯。
全屏
super.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
橫豎向
super.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);/ ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
屏幕參數widht,height,dpi等
Display display = super.getWindowManager().getDefaultDisplay();
DisplayMetrics displayMetrics = new DisplayMetrics();
display.getMetrics(displayMetrics);
display.getWidth()等方法
displayMetrics.densityDpi等方法
Activity有7個生命周期。Activity程序入口為方法onCreate或onStart。一些初始化的操作需要在這兩個方法中進行,例如設置layout,初始化控件,添加事件監聽等。
每次啟動Activity都是從OnCreare開始,接著onStart,onResume。<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+sLRCYWNrvPy+zb3hyvizzNDyo7pvblBhdXNlo6xvblN0b3CjrG9uRGVzdHJveaO7PC9wPgo8cD6wtGhvbWW8/MfQu7uzzNDyo7pvblBhdXNlo6xvblN0b3CjrMfQu7u72MC0o7pvblJlc3RhcnSjrG9uU3RyYXSjrG9uUmVzdW1loaM8L3A+CjxwPtTawb249tLUyc9BY3Rpdml0ecfQu7vKsaGjQWN0aXZpdHnKx7fxsbtEZXN0cm95yKG+9tPaxvS2r8Sjyr1sYXVuY2hNb2RloaM8L3A+CjxwPiA8L3A+CjxwPiA8L3A+Cjx0YWJsZSBib3JkZXI9"1" cellpadding="0" cellspacing="0" width="982">
onCreate
當首次創建Activity時調用。一些設置在該方法中進行:創建視圖,數據綁定等。還以Bundle的形式提供以前存儲的任何狀態的訪問。
onRestart
重新啟動Activity時調用。該活動仍在內存中,而不是重起一個新的Activity。
onStart
當Activity在屏幕上可見時調用。跟著onResume(),
onResume
當Activity與用戶交互時調用。
onPause
在系統啟動恢復前一個活動時調用。這通常用於未保存的更改提交到持久性數據、 停止動畫和其他可能會占用 CPU 等的東西。此方法的實現必須非常快速,因為此方法返回之前不會恢復的下一個活動。跟或 onResume(),如果活動返回到前面或 onStop(),如果它變得對用戶不可見。
onStop
因為另一項Activity已恢復或啟動,這個Activity已不再對的用戶可見時調用。這可能發生或者因為正在啟動一項新的Activity,現有之前的這一個Activity或被銷毀。如果這個Activity出錯或失敗將 onDestroy(),如果被用戶重新選中則調用 onRestart()。
onDestroy
Activity被銷毀前的最後調用。發生這種情況是因為Activity被finishing (或稱為 finish() ,或因為系統暫時銷毀此活動的Activity以節省空間。您可以使用 isFinishing() 方法,區分這兩種情況。
在配置文件中android:launchMode可以進行配置Activity加載模式。四種activity的加載模式:standard,singleTop,singleTask,singleInstance。
1. standard:默認,表示如果需要就創建。這樣會導致,切換一次Activity,就創建一個。切換多少次,按back鍵就會返貨多少次。
例如ActivityMain使用standard模式,當他轉到ActivityOtherOne,又切換到ActivityMain時,原先在ActivityMain上面的EditText最開始輸入的文字也就沒有了。
2. singleTop:如果已經有一個這個Activity實例位於Activity棧的頂部時,就不產生新的實例。
3. singleTask: 會在一個新的task 中產生這個實例,以後每次調用都會使用這個,不會去產生新的實例了。
4. singleInstance: 這個跟singleTask基本上是一樣,只有一個區別:在這個模式下的Activity實例所處的task 中,只能有這個activity實例,不能有其他的實例。
首先簡單介紹Intent(意圖)。Intent類相當於平台中應用程序之間的通信網絡,Intent是一個要執行的操作的抽象說明,相當於各個Activity之間的橋梁。在一個Activity中想切換到另一個Activity,需要使用方法startActivity,並需要定義一個Intent來指定意圖的組件類。
定義Intent,使用Intent設置需要切換到哪個Activity。使用Activity的startActivity(Intent)方法。
Java代碼
當然也可以在切換Activity的時候傳遞數據。可以直接使用intent的putExtra方法,也可以new一個Bundle傳輸入,但是需要讓intent把bundle進行putExtras下。
傳參數端的Activity:
Java代碼
接收方,例子中的ActivityOtherOne。需要在OnCreate方法中獲取。
Java代碼
1,在主Activitiy(ActivityMainExample)需要使用startActivityForResult方法切換Activity。其中第二個參數requestCode,只有當>= 0,在轉會此Activity時才會調用onActivityResult方法,得到回傳數據。
ActivityMainExample類中代碼
Java代碼
重寫onActivityResult方法,獲取回傳數據
Java代碼
2,在另一個Activity插入回傳數據,然後finish。
ActivityOtherTwo類中代碼。
Java代碼
一些常用的Activity子類,後面將詳細說明如何使用。寫好後更新鏈接地址
ActivityGroup http://limingnihao.iteye.com/
TabActivity http://limingnihao.iteye.com/
ListActivity http://limingnihao.iteye.com/
Service基本用法新建一個MyService繼承自Service,並重寫父類的onCreate()、onStartCommand()和onDestroy()方法,如下
在前面一篇文章Android系統進程間通信(IPC)機制Binder中的Server
1.view的滑動,六種滑動方式:一:通過layout來實現滑動效果package com.example.testdragview;import android.con
本文實例講述了Android游戲開發學習①彈跳小球實現方法。分享給大家供大家參考。具體如下:在學習了一點點Android之後,覺得有必要記錄下來,於是就開了這個新坑,慢慢