Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android登錄界面的實現

Android登錄界面的實現

編輯:關於Android編程

最近由於項目需要,寶寶好久沒搞Android啦,又是因為項目需要,現在繼續弄Android,哎,說多了都是淚呀,別的不用多說,先搞一個登錄界面練練手,登錄界面可以說是Android項目中最常用也是最基本的,如果這個都搞不定,那可以直接去跳21世紀樓啦。廢話不多說,先上效果圖

\

相信這種渣渣布局對很多人來說太簡單啦,直接上布局:

 



    

        <framelayout android:gravity="center" android:id="@+id/username_layout" android:layout_height="wrap_content" android:layout_margintop="55dp" android:layout_width="fill_parent">

            

            
            

            

            </framelayout>

MainActivity如下:

 

 

package com.example.logindemo;

import android.support.v7.app.ActionBarActivity;
import android.text.Editable;
import android.text.TextWatcher;
import android.text.method.HideReturnsTransformationMethod;
import android.text.method.PasswordTransformationMethod;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.os.Bundle;

/**
 * 登錄界面Demo
 * 
 * @author ZHY
 * 
 */
public class MainActivity extends ActionBarActivity implements OnClickListener {

	private EditText username, password;
	private Button bt_username_clear;
	private Button bt_pwd_clear;
	private Button forgive_pwd;
	private Button bt_pwd_eye;
	private Button login;
	private Button register;
	private boolean isOpen = false;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		initView();

	}

	private void initView() {

		username = (EditText) findViewById(R.id.username);
		// 監聽文本框內容變化
		username.addTextChangedListener(new TextWatcher() {

			@Override
			public void onTextChanged(CharSequence s, int start, int before,
					int count) {
				// 獲得文本框中的用戶
				String user = username.getText().toString().trim();
				if ("".equals(user)) {
					// 用戶名為空,設置按鈕不可見
					bt_username_clear.setVisibility(View.INVISIBLE);
				} else {
					// 用戶名不為空,設置按鈕可見
					bt_username_clear.setVisibility(View.VISIBLE);
				}
			}

			@Override
			public void beforeTextChanged(CharSequence s, int start, int count,
					int after) {

			}

			@Override
			public void afterTextChanged(Editable s) {

			}
		});
		password = (EditText) findViewById(R.id.password);
		// 監聽文本框內容變化
		password.addTextChangedListener(new TextWatcher() {

			@Override
			public void onTextChanged(CharSequence s, int start, int before,
					int count) {
				// 獲得文本框中的用戶
				String pwd = password.getText().toString().trim();
				if ("".equals(pwd)) {
					// 用戶名為空,設置按鈕不可見
					bt_pwd_clear.setVisibility(View.INVISIBLE);
				} else {
					// 用戶名不為空,設置按鈕可見
					bt_pwd_clear.setVisibility(View.VISIBLE);
				}
			}

			@Override
			public void beforeTextChanged(CharSequence s, int start, int count,
					int after) {

			}

			@Override
			public void afterTextChanged(Editable s) {

			}
		});

		bt_username_clear = (Button) findViewById(R.id.bt_username_clear);
		bt_username_clear.setOnClickListener(this);

		bt_pwd_clear = (Button) findViewById(R.id.bt_pwd_clear);
		bt_pwd_clear.setOnClickListener(this);

		bt_pwd_eye = (Button) findViewById(R.id.bt_pwd_eye);
		bt_pwd_eye.setOnClickListener(this);

		login = (Button) findViewById(R.id.login);
		login.setOnClickListener(this);

		register = (Button) findViewById(R.id.register);
		register.setOnClickListener(this);

		forgive_pwd = (Button) findViewById(R.id.forgive_pwd);
		forgive_pwd.setOnClickListener(this);

	}

	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.bt_username_clear:
			// 清除登錄名
			username.setText("");
			break;
		case R.id.bt_pwd_clear:
			// 清除密碼
			password.setText("");
			break;
		case R.id.bt_pwd_eye:
			// 密碼可見與不可見的切換
			if (isOpen) {
				isOpen = false;
			} else {
				isOpen = true;
			}

			// 默認isOpen是false,密碼不可見
			changePwdOpenOrClose(isOpen);

			break;
		case R.id.login:
			// TODO 登錄按鈕

			break;
		case R.id.register:
			// 注冊按鈕
			Toast.makeText(MainActivity.this, "注冊", 0).show();
			break;
		case R.id.forgive_pwd:
			// 忘記密碼按鈕
			Toast.makeText(MainActivity.this, "忘記密碼", 0).show();
			break;

		default:
			break;
		}
	}

	/**
	 * 密碼可見與不可見的切換
	 * 
	 * @param flag
	 */
	private void changePwdOpenOrClose(boolean flag) {
		// 第一次過來是false,密碼不可見
		if (flag) {
			// 密碼可見
			bt_pwd_eye.setBackgroundResource(R.drawable.password_open);
			// 設置EditText的密碼可見
			password.setTransformationMethod(HideReturnsTransformationMethod
					.getInstance());
		} else {
			// 密碼不接見
			bt_pwd_eye.setBackgroundResource(R.drawable.password_close);
			// 設置EditText的密碼隱藏
			password.setTransformationMethod(PasswordTransformationMethod
					.getInstance());
		}
	}

}

Ok,就是這麼簡單,效果完成。

 

點我下載源碼

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved