登錄應(yīng)用程序的屏幕,詢問憑據(jù)登錄到一些特定的應(yīng)用。可能需要登錄到Facebook,微博等
本章介紹了,如何創(chuàng)建一個(gè)登錄界面,以及如何管理安全問題和錯(cuò)誤嘗試。
首先,必須定義兩個(gè)TextView詢問用戶的用戶名和密碼。密碼TextView必須inputType設(shè)置密碼。它的語法如下:
<EditText android:id="@+id/editText2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputType="textPassword" /> <EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" />
定義具有登錄文本的按鈕,并設(shè)置其屬性onClick。之后定義在java文件中的 onClick 屬性中提到的功能。
<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="login" android:text="@string/Login" />
在java文件的onClick方法中使用gettext()得到用戶名和密碼,文本使用toString()方法,并用文字使用equals()函數(shù)相匹配。
EditText username = (EditText)findViewById(R.id.editText1); EditText password = (EditText)findViewById(R.id.editText2); public void login(View view){ if(username.getText().toString().equals("admin") && password.getText().toString().equals("admin")){ //correcct password }else{ //wrong password }
需要做的最后一件事是提供一種安全機(jī)制,所以應(yīng)避免不必要的嘗試。對(duì)于初始化一個(gè)變量,每個(gè)失敗的嘗試,它遞減。而且,當(dāng)它到達(dá)0時(shí),禁止登錄按鈕。
int counter = 3; counter--; if(counter==0){ //disble the button, close the application e.t.c }
這里有一個(gè)例子演示登錄應(yīng)用程序。它創(chuàng)建了一個(gè)基本的應(yīng)用程序,只需三次嘗試登錄到一個(gè)應(yīng)用程序。
為了試驗(yàn)這個(gè)例子,可以在實(shí)際設(shè)備或模擬器運(yùn)行此應(yīng)用程序。
Steps | 描述 |
---|---|
1 | 使用Android Studio創(chuàng)建Android應(yīng)用程序,并將其命名為LoginScreen。在創(chuàng)建這個(gè)項(xiàng)目,確保目標(biāo)SDK編譯在Android SDK最新版本或使用更高級(jí)別的API。 |
3 | 修改 src/MainActivity.java文件中添加必要的代碼 |
4 | 修改res/layout/activity_main添加相應(yīng)的XML組件 |
5 | 修改 res/values/string.xml 添加必要的字符串 |
6 | 運(yùn)行應(yīng)用程序并選擇運(yùn)行Android設(shè)備,并在其上安裝的應(yīng)用和驗(yàn)證結(jié)果 |
以下是修改后的主活動(dòng)文件的內(nèi)容 src/com.yiibai.loginscreen/MainActivity.java.
package com.example.loginscreen; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { private EditText username=null; private EditText password=null; private TextView attempts; private Button login; int counter = 3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); username = (EditText)findViewById(R.id.editText1); password = (EditText)findViewById(R.id.editText2); attempts = (TextView)findViewById(R.id.textView5); attempts.setText(上一篇:Android本地化下一篇:Android開發(fā)環(huán)境搭建