簡單android項目
『壹』 android項目怎麼注冊activity
1、打開AndroidManifest.xml文件
2、在application節點間插入
<activity android:name="com.example.testand.MainActivity"/>
com.example.testand.MainActivity是activity在工程中的路徑。這是最簡單的一個注冊
其他activity中可選用屬性有:
<activity android:allowTaskReparenting=["true" | "false"]
android:alwaysRetainTaskState=["true" | "false"]
android:clearTaskOnLaunch=["true" | "false"]
android:configChanges=["mcc", "mnc", "locale",
"touchscreen", "keyboard", "keyboardHidden",
"navigation", "orientation", "screenLayout",
"fontScale", "uiMode"]
android:enabled=["true" | "false"]
android:excludeFromRecents=["true" | "false"]
android:exported=["true" | "false"]
android:finishOnTaskLaunch=["true" | "false"]
android:icon="drawable resource"
android:label="string resource"
android:launchMode=["multiple" | "singleTop" |
"singleTask" | "singleInstance"]
android:multiprocess=["true" | "false"]
android:name="string"
android:noHistory=["true" | "false"]
android:permission="string"
android:process="string"
android:screenOrientation=["unspecified" | "user" | "behind" |
"landscape" | "portrait" |
"sensor" | "nosensor"]
android:stateNotNeeded=["true" | "false"]
android:taskAffinity="string"
android:theme="resource or theme"
android:windowSoftInputMode=["stateUnspecified",
"stateUnchanged", "stateHidden",
"stateAlwaysHidden", "stateVisible",
"stateAlwaysVisible", "adjustUnspecified",
"adjustResize", "adjustPan"] >
</activity>
(註:有些在application中重復的就不多闡述了)
1、android:alwaysRetainTaskState
是否保留狀態不變, 比如切換回home, 再從新打開,activity處於最後的狀態。比如一個瀏覽器擁有很多狀態(當打開了多個TAB的時候),用戶並不希望丟失這些狀態時,此時可將此屬性設置為true
2、android:clearTaskOnLaunch
比如 P 是 activity, Q 是被P 觸發的 activity, 然後返回Home, 重新啟動 P,是否顯示 Q
3、android:configChanges
當配置list發生修改時, 是否調用 onConfigurationChanged() 方法 比如 "locale|navigation|orientation".
這個我用過,主要用來看手機方向改變的. android手機在旋轉後,layout會重新布局, 如何做到呢?
正常情況下. 如果手機旋轉了.當前Activity後殺掉,然後根據方向重新載入這個Activity. 就會從onCreate開始重新載入.
如果你設置了 這個選項, 當手機旋轉後,當前Activity之後調用onConfigurationChanged() 方法. 而不跑onCreate方法等.
4、android:excludeFromRecents
是否可被顯示在最近打開的activity列表裡,默認是false
5、android:finishOnTaskLaunch
當用戶重新啟動這個任務的時候,是否關閉已打開的activity,默認是false
如果這個屬性和allowTaskReparenting都是true,這個屬性就是王牌。Activity的親和力將被忽略。該Activity已經被摧毀並非re-parented
6、android:launchMode(Activity載入模式)
在多Activity開發中,有可能是自己應用之間的Activity跳轉,或者夾帶其他應用的可復用Activity。可能會希望跳轉到原來某個Activity實例,而不是產生大量重復的Activity。這需要為Activity配置特定的載入模式,而不是使用默認的載入模式
Activity有四種載入模式:
standard、singleTop、singleTask、singleInstance(其中前兩個是一組、後兩個是一組),默認為standard
standard:就是intent將發送給新的實例,所以每次跳轉都會生成新的activity。
singleTop:也是發送新的實例,但不同standard的一點是,在請求的Activity正好位於棧頂時(配置成singleTop的Activity),不會構造新的實例
singleTask:和後面的singleInstance都只創建一個實例,當intent到來,需要創建設置為singleTask的Activity的時候,系統會檢查棧裡面是否已經有該Activity的實例。如果有直接將intent發送給它。
singleInstance:
首先說明一下task這個概念,Task可以認為是一個棧,可放入多個Activity。比如啟動一個應用,那麼Android就創建了一個Task,然後啟動這個應用的入口Activity,那在它的界面上調用其他的Activity也只是在這個task裡面。那如果在多個task中共享一個Activity的話怎麼辦呢。舉個例來說,如果開啟一個導游服務類的應用程序,裡面有個Activity是開啟GOOGLE地圖的,當按下home鍵退回到主菜單又啟動GOOGLE地圖的應用時,顯示的就是剛才的地圖,實際上是同一個Activity,實際上這就引入了singleInstance。singleInstance模式就是將該Activity單獨放入一個棧中,這樣這個棧中只有這一個Activity,不同應用的intent都由這個Activity接收和展示,這樣就做到了共享。當然前提是這些應用都沒有被銷毀,所以剛才是按下的HOME鍵,如果按下了返回鍵,則無效
7、android:multiprocess
是否允許多進程,默認是false
具體可看該篇文章:http://www.bangchui.org/simple/?t3181.html
8、android:noHistory
當用戶從Activity上離開並且它在屏幕上不再可見時,Activity是否從Activity stack中清除並結束。默認是false。Activity不會留下歷史痕跡
9、android:screenOrientation
activity顯示的模式
默認為unspecified:由系統自動判斷顯示方向
landscape橫屏模式,寬度比高度大
portrait豎屏模式, 高度比寬度大
user模式,用戶當前首選的方向
behind模式:和該Activity下面的那個Activity的方向一致(在Activity堆棧中的)
sensor模式:有物理的感應器來決定。如果用戶旋轉設備這屏幕會橫豎屏切換
nosensor模式:忽略物理感應器,這樣就不會隨著用戶旋轉設備而更改了
10、android:stateNotNeeded
activity被銷毀或者成功重啟時是否保存狀態
11、android:windowSoftInputMode
activity主窗口與軟鍵盤的交互模式,可以用來避免輸入法面板遮擋問題,Android1.5後的一個新特性。
這個屬性能影響兩件事情:
【A】當有焦點產生時,軟鍵盤是隱藏還是顯示
【B】是否減少活動主窗口大小以便騰出空間放軟鍵盤
各值的含義:
【A】stateUnspecified:軟鍵盤的狀態並沒有指定,系統將選擇一個合適的狀態或依賴於主題的設置
【B】stateUnchanged:當這個activity出現時,軟鍵盤將一直保持在上一個activity里的狀態,無論是隱藏還是顯示
【C】stateHidden:用戶選擇activity時,軟鍵盤總是被隱藏
【D】stateAlwaysHidden:當該Activity主窗口獲取焦點時,軟鍵盤也總是被隱藏的
【E】stateVisible:軟鍵盤通常是可見的
【F】stateAlwaysVisible:用戶選擇activity時,軟鍵盤總是顯示的狀態
【G】adjustUnspecified:默認設置,通常由系統自行決定是隱藏還是顯示
【H】adjustResize:該Activity總是調整屏幕的大小以便留出軟鍵盤的空間
【I】adjustPan:當前窗口的內容將自動移動以便當前焦點從不被鍵盤覆蓋和用戶能總是看到輸入內容的部分
『貳』 用Android studio做一個可以運行的小程序,鬧鍾也行,然後可以連到手機,感謝大神。
環境搭建就不講了,直接說開發。
小鬧鍾程序開發中的要點就是:
1、時間選擇對話框(TimePicker)
2、獲取鬧鍾管理器並對其進行設置
3、注冊廣播接收器
掌握了這兩點,寫程序就很簡單了。
1、新建android項目:Alarm,sdk版本選擇2.2,Package name:com.lql.activity,Main Activity:Alarm
2、編寫界面:直接修改layout中的main.xml文件,代碼如下:
Xml代碼
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical"
>
<Button
android:id="@+id/timeBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/time"
android:textSize="20sp"
/>
<Button
android:id="@+id/cancelAlarmBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/cancelAlarm"
/>
</LinearLayout>
{
/*(non-javadoc)
*@seeandroid.content.BroadcastReceiver#onReceive(android.content.Context,android.content.Intent)
*/
@Override
publicvoidonReceive(Contextarg0,Intentdata){
Log.d(Alarm.TAG,"thetimeisup,startthealarm...");
Toast.makeText(arg0,"鬧鍾時間到了!",Toast.LENGTH_SHORT).show();
}
}
package="com.ql.activity"
android:versionCode="1"
android:versionName="1.0">
<applicationandroid:icon="@drawable/icon"android:label="@string/app_name">
<receiverandroid:name=".AlarmReceiver"android:process=":remote"/>
<activityandroid:name=".Alarm"
android:label="@string/app_name">
<intent-filter>
<actionandroid:name="android.intent.action.MAIN"/>
<categoryandroid:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
<uses-sdkandroid:minSdkVersion="8"/>
</manifest>
界面的效果如下:
這個代碼就很簡單了,主要是要繼 承BroadcastReceiver 這個類,然後重寫onRecive方法。onRecive方法在鬧鍾的時間達到之後會執行,在這里我們可以做自己的事情,比如啟動某個程序,或者播放鈴聲,我這里就是簡單的提示一下,使用的是Toast。
5、在android的AndroidManifest.xml文件中注冊廣播接收器:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
Xml代碼
核心的配置為<receiver android:name=".AlarmReceiver" android:process=":remote" />,這也是鬧鍾程序的關鍵,如果不做這個配置,那麼時間到了之後,鬧鍾將不會提示。
接下來就是到模擬器上測試,運行截圖如上圖。程序源代碼見附件。
『叄』 如何創建第一個android程序
一、 開發環境安裝:
1. 下載 Android SDK.
2. 如果使用Eclipse,請安裝 ADT 插件。
3. 下載最新的SDK工具和平台。
二、創建Android項目
一個android項目包含了程序中用到的所有源代碼文件.使用Android SDK工具可以輕松的創建一個包含默認目錄和文件的項目。
本節介紹如何使用eclipse或從命令行創建一個項目。
Create a Project with Eclipse
點擊工具中的 New .
在彈出的窗口中,打開Android目錄,選擇【Android Application Project】,點擊【next】.
Figure 1. The New Android App Project wizard in Eclipse.
3. 在彈出的窗口,如圖【Figure1】中,填入下列信息:
Application Name :應用程序名.填入"My First App."
Project Name:項目目錄名和顯示在Eclipse中的項目文件名 。
Package Name :程序包的命名空間,與java或c#類似。你的包名應該定義一個唯一的名字,保證與在androi系統中安裝的所有其他包名稱不一樣。因此,強烈建議以組織或公司的域名或發布者名字開頭。在這個項目中,我們使用"com.example.myfirstapp." ,但是,你不能發布以"com.example」為命名空間的應用到Google Play上。
Minimum Required SDK :程序支持的android系統的最小版本,如果你想要支持更多的android設備,需要將這個版本號設置得相對低一點。有過有些功能在低版本上不支持,你可以只在高版本上啟動該功能。在此我們使用默認設置。
Target SDK:當前版本,也是最高版本,當有更高的版本出來時,你應該重新在新的版本上測試你的程序,並修改此參數。
Compile With: 你編譯程序時使用的版本。建議使用最新的版本,可通過SDK MANAGER下載。新版本中有新的一些特性,並會根據用戶的使用體驗做一些改進。
Theme :Android UI樣式。可以按默認設置。
點擊 Next.
在下一個屏幕上使用默認設置,繼續點擊next.
下一個屏幕可以設置程序圖標.
你可以通過多種方式自定義圖標,系統會自動為你生成各種屏幕尺寸下的圖標。在你發布程序前,請確保你的圖標滿足Iconography 設計指南中的說明定義。
繼續點擊 Next.
現在可以選擇一個activity模版.
當前項目,我們選擇BlankActivity,然後點擊Next.
4.剩下的都按默認設置,點擊 Finish.
這樣,這個項目就創建完畢了
從命令行工具創建項目
如果你沒有使用Eclipse,你可以從命令行通過SDK工具創建項目。
切換到Android SDK目錄, tools/ path.
執行:
android list targets
該命令顯示可用的android平台。
如果沒有顯示任何列表,請先通過Android SDK Manager 工具進行安裝. 參見 Adding Platforms and Packages.
執行:
android create project --target --name MyFirstApp \
--path /MyFirstApp --activity MainActivity \
--package com.example.myfirstapp
將修改為上一步驟中顯示的id;將 修改為你要保存項目的文件夾。
Your Android project is now set up with several default configurations and you』re ready to begin building the app. Continue to the next lesson.
小貼士: 將 platform-tools/ 同tools/ 目錄一樣加到你的環境變數。
這樣,這個項目就創建完畢了.
三、運行你的程序
你要如何運行你的程序取決於兩件事:是否有真實的android設備;是否使用eclipse.
在運行你的程序之前,你需要注意項目中的一些文件夾和文件:
AndroidManifest.xml
manifest文件描述應用程序的一些基礎特性並定義每一個組件。
你可以查看項目中的manifest文件,與之前談到的manifest文件的說明對比,即可知道對應的一些元素的設置:
http://schemas.android.com/apk/res/android" ... >
...
src/
存放源代碼的目錄.默認情況下,包含一個啟動時用到的 Activity 類。
res/
含有多個子文件,用於程序資源的存放。示例目錄如下:
drawable-hdpi/
包含一些可用於高解析度屏幕的繪圖實體,如圖片。其他類似的目錄包含對應的解析度屏幕下的圖片。
layout/
程序UI文件。
values/
包含用於定義諸如字元串、顏色等的xml文件。
在真實設備上運行
如果你有android系統設備,可以直接在上面安裝你的程序並運行:
首先你的設備需要安裝usb驅動。如果你是在window上開發,你可以安裝合適的usb驅動。具體驅動安裝信息可以參考 OEM USB Drivers
在設備上啟用USB調試
大部分 Android 3.2或更早的機器,在 【設置】-【應用程序】-【開發】中設置。
Android 4.0和之後的系統,應該是在【設置】-【開發選項】中。
Note: On Android 4.2 and newer, Developer options is hidden by default. To make it available, go to Settings > About phone and tap Build number seven times. Return to the previous screen to find Developer options.
運行步驟:
打開項目文件,點擊【run】。
在彈出的窗口中選擇【Android Application】,然後點擊【OK】
Eclipse會自動將程序安裝到你的設備上並運行他。
在模擬器上運行
在 【run】-【run configuration】中的【Target】頁面添加和設置模擬器,然後即可運行
『肆』 github 上的Android 項目怎麼使用啊
下載zip,解壓到桌面
打開eclipse,File-Import-Existing Android Code Into Workspace
選中library文件,導入到eclipse中
打開此library,右鍵library,properties-Android-Library-勾選Is Library
打開你的程序後,右鍵你的主程序,properties-Android-Library-Add,選擇library文件
導入的基本步驟就這樣,接下來是如何使用
找到你的程序-layout-xml添加一個
<com.handmark.pulltorefresh.library.PullToRefreshListView
android:id="@+id/pull_to_refresh_listView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
回到MainActivity中,頭文件中添加一段代碼
import com.handmark.pulltorefresh.library.PullToRefreshListView;
之後把你需要用到的listview全部改為PullToRefreshListView,例如
private PullToRefreshListView mPullRefreshListView;
接著就像listview一樣使用吧