Android布局中对输入密码的隐藏和显示

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="姓名:"
            android:id="@+id/textView" />

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/tv1"
            android:layout_weight="0.91" />
    </LinearLayout>
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:weightSum="1">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="密码:"
            android:id="@+id/textView1"
            />

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/password"
            android:inputType="textPassword"/>
    </LinearLayout>
    <CheckBox
        android:id="@+id/check"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="显示密码" />
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        >
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="登录"
            android:id="@+id/btnl"
            android:layout_weight="1"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:layout_weight="100"
            android:id="@+id/textView2" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="退出"
            android:id="@+id/button2"
            android:layout_weight="1"
            android:layout_toEndOf="@+id/textView2"
            android:layout_gravity="right" />
    </LinearLayout>

</LinearLayout>
package com.banana.k08.home;

import android.app.Activity;
import android.os.Bundle;
import android.text.method.HideReturnsTransformationMethod;
import android.text.method.PasswordTransformationMethod;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

    private EditText id,password;
    private CheckBox cb;
    private Button btn1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        id = (EditText) findViewById(R.id.tv1);
        password = (EditText) findViewById(R.id.password);
        cb = (CheckBox) findViewById(R.id.check);
        //设置选择是否显示密码
        cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
                if(cb.isChecked()){
                    password.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
                }
                else{
                    password.setTransformationMethod(PasswordTransformationMethod.getInstance());

                }
            }
        });

        findViewById(R.id.btnl).setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                String name = id.getText().toString();
                String pass = password.getText().toString();
                if (name.equals("admin") && pass.equals("admin")) {
                    Toast.makeText(getApplicationContext(),"登陆成功",Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(getApplicationContext(), "登陆失败,请重新输入", Toast.LENGTH_SHORT).show();

                }
            }
        });

    }

}

时间: 2024-10-02 21:33:01

Android布局中对输入密码的隐藏和显示的相关文章

Android 布局中的include标签使用

Android 布局中的include标签使用 最近在布局时,有好多页面都是有共同特点的,比如标题:一个同样的样式! 如下图所示: 如果给每个页面都单独的写一个标题的布局那就太麻烦了,如果能写一个标题布局,其它页面重用该多好! 这个时候,<include> 就隆重登场了! 写一个标题的布局 title.xml: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:an

android 布局中 layout_gravity、gravity、orientation、layout_weight

线性布局中,有 4 个及其重要的参数,直接决定元素的布局和位置,这四个参数是 android:layout_gravity ( 是本元素相对于父元素的重力方向 ) android:gravity (是本元素所有子元素的重力方向) android:orientation (线性布局以列或行来显示内部子元素) android:layout_weight (线性布局内子元素对未占用空间[水平或垂直]分配权重值,其值越小,权重越大. 前提是子元素 设置了 android:layout_width = "

android 布局中 layout_gravity、gravity、orientation、layout_weight【转】

线性布局中,有 4 个及其重要的参数,直接决定元素的布局和位置,这四个参数是 android:layout_gravity  ( 是本元素相对于父元素的重力方向 ) android:gravity        (是本元素所有子元素的重力方向) android:orientation    (线性布局以列或行来显示内部子元素) android:layout_weight  (线性布局内子元素对未占用空间[水平或垂直]分配权重值,其值越小,权重越大. 前提是子元素 设置了 android:layo

安卓开发技巧一:深入理解Android布局中Layout_weight的属性

今天开始将要为大家介绍一些安卓开发过程将要用到的一些技巧,这些技巧全部来自网络搜集,或者自己在企业做项目的时候总结出来的,利用这些技巧将会对我们开发带来非常方便的便捷性. 先来记录一下这一段时间的技巧目录,方便大家以后方便查阅(大概有不到三十种的技巧总结,大概每周分享两个技巧,笔者将尽可能写的详细,以及提供实例源码): 安卓开发技巧一:深入理解Android布局中Layout_weight的属性 安卓开发技巧二:自定义日志工具类 安卓开发技巧三:Activity的启动模式 安卓开发技巧四:分享一

android布局中使用include及需注意点

在android布局中,使用include,将另一个xml文件引入,可作为布局的一部分,但在使用include时,需注意以下问题: 一.使用include引入 如现有标题栏布局block_header.xml,代码如下: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layout_header" android:layout

android布局中显示隐藏动画

android 在布局中提供属性,能简单的添加动画效果,如下: <LinearLayout ... animateLayoutChanges="true" ... /> 当对布局中的view添加删除,隐藏或显示, 都会有一个淡入淡出,和位移动画. 除了在XML布局文件中使用animateLayoutChanges 属性.也可以创建 LayoutTransition 对象通过 setLayoutTransition() 方法设置进去.源码如下: private ViewGro

Android布局中 android:layout_gravity=&quot;bottom&quot;为何不起作用?

在android布局时我们有时会需要将位于LinearLayout布局中的控件放在布局底部,或者是同时想将几个控件底部对齐,此时我们自然会想到使用 android:layout_gravity="bottom" 将控件放在该线性布局底部,但是,但是这样是行不通的,这个问题今天也困扰了我很长时间,以为是自己其他地方布局搞错了或者其他地方搞错了才会出现这种情况,最后没办法查资料才发现以下规律: 在 LinearLayout布局时: 当总布局为水平布局时 即当 android:orienta

Android 布局中 如何使控件居中

首先要分两种不同情况,在两种不同的布局方式下:LinearLayout 和RelativeLayout 1. LinearLayout a). android:layout_gravity="center_horizontal"表示该布局在父布局里水平居中,此时其父布局必须拥有android:orientation="vertical"属性: b). android:layout_gravity="center_vertical"表示该布局在父布

【转】在Android布局中使用include和merge标签

内容转自:http://fengweipeng1208.blog.163.com/blog/static/21277318020138229754135/ 在我们开发android布局时,经常会有很多的布局是相同的,这个时候我们可以通过<include/>和<merge/>标签实现将复杂的布局包含在需要的布局中,减少重复代码的编写. 1. 创建一个可以重复使用的布局: 如下代码描述在应用中每个acitivity都出现的顶栏titlebar.xml 1 <FrameLayout