栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

Android QQ登录界面绘制代码

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android QQ登录界面绘制代码

本文实例为大家分享了Android QQ登录界面绘制的具体代码,供大家参考,具体内容如下

先看看效果图:

首先过程中碰到的几个问题:

1、对 EditText 进行自定义背景

2、运行时自动 EditText 自动获得焦点

3、在获得焦点时即清空 hint ,而不是输入后清空

4、清空按钮的出现时机(在得到焦点并且有输入内容时)

---  这些问题都有一一解决 ---

以下是代码:

布局 fragment_main(问题2)




  

 
 

 
 

 

Button 和 EditText 的背景(问题1)

1.bg_button



 
 
 
 
 
 
 

2.bg_edittext



 
 
 
 
 
 
 
 


3.strings




 qqloginnew
 Settings
 登录
 无法登录?
 新用户注册
 QQ号/手机号/邮箱
 密码
 登录成功


MainActivity (问题3、4.....)

package com.dragon.android.qqloginnew;

import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {
 private EditText editText1;
 private EditText editText2;
 // private Button button;
 private Button clearButton1;
 private Button clearButton2;

 // 得到strings中的属性
 // private String string2 = getResources().getString(R.string.inaccount);

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

 editText1 = (EditText) findViewById(R.id.editText1);
 editText2 = (EditText) findViewById(R.id.editText2);

 // button = (Button) findViewById(R.id.button1);
 clearButton1 = (Button) findViewById(R.id.button2);
 clearButton2 = (Button) findViewById(R.id.button3);

 // 对EditText进行焦点变更监听
 editText1.setonFocusChangeListener(new EditTextListener(clearButton1));
 editText2.setonFocusChangeListener(new EditTextListener(clearButton2));

 // 对清空按钮进行点击监听
 clearButton1.setonClickListener(new ClearButtonListener());
 clearButton2.setonClickListener(new ClearButtonListener());

 // 对EditText进行编辑监听
 editText1.addTextChangedListener(new MyEditTextWatcher(editText1));
 editText2.addTextChangedListener(new MyEditTextWatcher(editText2));
 }

 
 class MyEditTextWatcher implements TextWatcher {
 private CharSequence temp;
 private EditText editText;

 public MyEditTextWatcher(EditText editText) {
  this.editText = editText;
 }

 @Override
 // int start开始的位置, int count被改变的旧内容数, int after改变后的内容数量
 public void beforeTextChanged(CharSequence s, int start, int count,
  int after) {
  // 这里的s表示改变之前的内容,通常start和count组合,可以在s中读取本次改变字段中被改变的内容。而after表示改变后新的内容的数量。
 }

 @Override
 // int start开始的位置, int before改变前的内容数量, int count新增量
 public void onTextChanged(CharSequence s, int start, int before,
  int count) {
  // 这里的s表示改变之后的内容,通常start和count组合,可以在s中读取本次改变字段中新的内容。而before表示被改变的内容的数量。
  temp = s;
 }

 @Override
 // 表示最终内容
 public void afterTextChanged(Editable s) {
  if (temp.length() > 0) {
  // 设置清空按钮为可见
  if (editText == editText1) {
   clearButton1.setVisibility(View.VISIBLE);
  } else if (editText == editText2) {
   clearButton2.setVisibility(View.VISIBLE);
  }
  } else {
  // 设置清空按钮不可见
  if (editText == editText1) {
   clearButton1.setVisibility(View.INVISIBLE);
  } else if (editText == editText2) {
   clearButton2.setVisibility(View.INVISIBLE);
  }
  }
 }
 }

 
 class ClearButtonListener implements onClickListener {

 @Override
 public void onClick(View view) {
  if (view == clearButton1) {
  editText1.setText("");
  } else if (view == clearButton2) {
  editText2.setText("");
  }
 }
 }

 
 class EditTextListener implements onFocusChangeListener {
 private Button clear;

 public EditTextListener(Button clear) {
  this.clear = clear;
 }

 @Override
 public void onFocusChange(View v, boolean hasFocus) {
  EditText textView = (EditText) v;
  String hint;
  if (hasFocus) {
  // 当获取焦点时如果内容不为空则清空按钮可见
  if (!textView.getText().toString().equals("")) {
   clear.setVisibility(View.VISIBLE);
  }
  // if (textView == editText2) {
  // // 设置输入格式为不可见的密码格式
  // textView.setInputType(InputType.TYPE_CLASS_TEXT
  // | InputType.TYPE_TEXT_VARIATION_PASSWORD);
  // }
  hint = textView.getHint().toString();
  // 给TextView添加额外的数据
  textView.setTag(hint);
  textView.setHint("");
  } else {
  // 当失去焦点时清空按钮不可见
  clear.setVisibility(View.INVISIBLE);
  // if (textView == editText2) {
  // // 设置输入格式为可见的密码格式
  // textView.setInputType(InputType.TYPE_CLASS_TEXT
  // | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
  // }
  // 取出之前添加的额外数据
  hint = textView.getTag().toString();
  textView.setHint(hint);
  }
 }
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/161536.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号