簡(jiǎn)單登錄界面_第1頁(yè)
簡(jiǎn)單登錄界面_第2頁(yè)
簡(jiǎn)單登錄界面_第3頁(yè)
簡(jiǎn)單登錄界面_第4頁(yè)
簡(jiǎn)單登錄界面_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Android簡(jiǎn)單登錄界面接著上一講留下的“需求”:設(shè)計(jì)一個(gè)登陸界面:允許用戶輸入用戶名,密碼;用戶點(diǎn)擊“Login”之后,如果用戶名為admin, 密碼為123則顯示“登陸成功”;如果用戶名密碼其中之一不正確,紅色字體顯示“登陸失??!”首先我們來(lái)建立一個(gè)新的項(xiàng)目:圖標(biāo)那一步就隨便選吧,下一步:這一步與上次有點(diǎn)不同, 這次我們不要ADT 幫我們創(chuàng)建任何的Activity,我們只需要一個(gè)空的項(xiàng)目。 點(diǎn)擊Finish后,我們會(huì)發(fā)現(xiàn),項(xiàng)目文件視圖下, 與上次的不一樣,src, res/layout 是空的,這一會(huì)需要我們自己去添加了。 首先來(lái)明確一下我們現(xiàn)在的目標(biāo):建立一個(gè)包含登

2、錄框的界面,并將它顯示在我們的手機(jī)(模擬器)上。建立一個(gè)界面的主要步驟是什么呢?主要有以下幾步:· 在res/layout下創(chuàng)建布局文件;· 在src下創(chuàng)建Activity子類,并將布局文件與這個(gè)Activity聯(lián)系起來(lái)。· 在AndroidManifest.xml程序配置文件中,添加Activity的聲明。我們先來(lái)1. 創(chuàng)建布局文件:在Eclipse項(xiàng)目文件中選中l(wèi)ayout 文件夾,在工具欄里點(diǎn)擊下面圖標(biāo)在彈出的窗口,填上這個(gè)xml布局文件的文件名,Root Element 根節(jié)點(diǎn)就選擇Linearlayout即可點(diǎn)擊下一步,這一步是選擇更多配置屬性的,暫且不

3、用理會(huì),直接點(diǎn)擊Finish。我們發(fā)現(xiàn),在res/layout 下面多了一個(gè)login.xml文件,同時(shí)Android 的Layout 編輯器也把它打開(kāi)了。切換到“source”代碼視圖,今天我們不用“所見(jiàn)即所得”的傻瓜拖拽方式。我們看到xml代碼是這樣的:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=" android:layout_width="match_parent" android:layout_height=&

4、quot;match_parent" android:orientation="vertical"></LinearLayout>根節(jié)點(diǎn)是LinearLayout,即線性布局,所謂線性布局,有點(diǎn)像J2SE上的流式布局,就是其中的UI元素,會(huì)按水平或者垂直方向順序地鋪開(kāi)。LinearLayout有個(gè)xml屬性:android:orientation,它有兩個(gè)可選值:vertical和horizontal,指明該線性布局中的元素,是以垂直(vertical)還是水平(horizontal)方向排列。下面是兩種方式的示意圖: 接下來(lái),我們要添

5、加兩個(gè)輸入框,讓用戶輸入用戶名,密碼。輸入框使用的是EditText, 我們?cè)贚inearLayout中添加兩個(gè)EditText<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"&

6、gt;<EditTextandroid:id="+id/login_username" android:layout_width="300dp" android:layout_height="wrap_content" android:hint="Type name here." android:text=""></EditText><EditTextandroid:id="+id/login_password" android:layout_w

7、idth="300dp" android:layout_height="wrap_content" android:hint="Type password here." android:inputType="textPassword" android:text=""></EditText></LinearLayout>對(duì)比每個(gè)節(jié)點(diǎn)屬性,我們發(fā)現(xiàn),不管是LinearLayout還是EditText,都會(huì)至少包含android:layout_widthandroid:l

8、ayout_height上一講我們有介紹這兩個(gè)屬性,這里再詳細(xì)介紹一下,不管是android:layout_width還是android:layout_height 都有四種可選填的值:· wrap_content· fill_parent· match_parent· 具體數(shù)值前面三個(gè)參考上一講。具體數(shù)值可以填像素px,如300px, 也可以填dp. dp(也寫(xiě)作dip)是Android平臺(tái)上特有的長(zhǎng)度計(jì)量單位,它是與設(shè)備屏幕無(wú)關(guān)的單位,強(qiáng)烈建議我們?cè)谠O(shè)計(jì)界面元素時(shí),都使用dp,而非px! 原因這里不多拓展,以后會(huì)詳細(xì)描述。還有一個(gè)重要的屬性

9、是:android:id, 它是UI元素的唯一標(biāo)識(shí),格式為+id/XXXXXXX保存之后,我們會(huì)發(fā)現(xiàn),在gen文件夾下面, ADT為我們自動(dòng)生成了代碼R.java:他們都是靜態(tài)且final 的類或者成員。它的作用是,為資源建立索引,以便代碼中或者layout中方便的引用。publicfinalclass R publicstaticfinalclass attr publicstaticfinalclass drawable publicstaticfinalint ic_launcher=0x7f020000; publicstaticfinalclass id publicstaticfi

10、nalint login_password=0x7f060001;publicstaticfinalint login_username=0x7f060000; publicstaticfinalclass layout publicstaticfinalint login=0x7f030000; publicstaticfinalclass string publicstaticfinalint app_name=0x7f040000; publicstaticfinalclass style publicstaticfinalint AppTheme=0x7f050000; 接下來(lái)我們?cè)偬?/p>

11、加一個(gè)用于提交的按鈕,以及用于顯示結(jié)果的文本:<Button android:id="+id/login_submit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="登錄"/><TextView android:id="+id/login_result" android:layout_width="match_parent" an

12、droid:layout_height="wrap_content" android:hint="用于顯示登錄的結(jié)果"/>android:hint是用于提示文本,當(dāng)android:text有值是,會(huì)被替換。切換回“所見(jiàn)即所得”的圖形編輯視圖預(yù)覽一下:布局文件創(chuàng)建完成,我們進(jìn)行第二步:2. 編寫(xiě)代碼在src右鍵New->Class->需要注意的是,該LoginActivity類必須繼承自Activity類publicclass LoginActivity extends Activity /* * 必須重載父類的onCreate */ O

13、verrideprotectedvoid onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);this.setContentView(R.layout.login);/將布局文件與代碼關(guān)聯(lián)起來(lái) /獲取布局文件中的UI元素對(duì)象final EditText mUserName = (EditText) this.findViewById(R.id.login_username);final EditText mPassword = (EditText) this.findViewById(R.id.login

14、_password); Button mSubmit = (Button)this.findViewById(R.id.login_submit);final TextView mResult = (TextView)this.findViewById(R.id.login_result);/設(shè)置按鈕點(diǎn)擊之后的事件處理 mSubmit.setOnClickListener(new OnClickListener() Overridepublicvoid onClick(View v) String userName = mUserName.getText().toString(); Strin

15、g password = mPassword.getText().toString();if("admin".equals(userName) && "123".equals(password) mResult.setText("恭喜您,登錄成功!"); else mResult.setText("登錄失敗,用戶名或密碼不正確!"); ); 注意以下幾點(diǎn):· 必須重載onCreate()方法,而且必須首先調(diào)用一次父類的方法super.onCreate(savedInstanceState)

16、;· setContentView()方法用于關(guān)聯(lián)布局文件,應(yīng)該在onCreate中先調(diào)用,后面才能獲取到UI元素的對(duì)象。· 因?yàn)橐㎡nClickListener匿名內(nèi)部類調(diào)用,所以局部變量要聲明為final.· EditText.getText()方法返回的是Editable對(duì)象,而不是String,需要調(diào)用toString();3. AndroidManifest.xml聲明activity所有的Activity定義好了之后,只有在AndroidManifest.xml中聲明過(guò),才會(huì)有效。在application節(jié)點(diǎn)中添加:<activity android:name="LoginActivity"><intent-filter><action android:name="ent.action.MAIN"/><category android:name="ent.category.LAUNCHER"/></inten

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論