Solucionado (ver solução)
Solucionado
(ver solução)
12
respostas

Como mostrar um botão(olho) para o usuário poder ver a senha digitada

No android como faço para exibir aquele componente(Um olho) que o usuário clica e as senhas que são pontos se transformar em string para ele editar a senha antes do login. Desde já agradeço

12 respostas

Oi Maison, tudo bem ?

Cara você está desenvolvendo em qual linguagem ?

Abraços

Oi Matheus, tudo bem. Java (Android)

Legal !

Cara é bem de boa, o próprio android já faz isso sozinho !!!

Basta você colocar esse atributo no seu EditText :

android:inputType="textPassword"

Faz o teste ai e fala para gente se foi !

Abraços

Então, ele já é um password(EditText) o que estou querendo não é a mascára dos pontinhos(..........) e sim aquele botão do olho que fica do lado que várias aplicações usam pra poder visualizar e editar a senha antes do login.

Qual é a versão que você está seu build.gradle ?

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
        classpath 'com.google.gms:google-services:3.0.0'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
apply plugin: 'com.android.application'


android {
    compileSdkVersion 25
    buildToolsVersion "25.0.0"
    defaultConfig {
        applicationId "com.maiso.baresmanaus"
        minSdkVersion 21
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

repositories {
    jcenter()
    maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.1.0'
    compile 'com.android.support:design:25.1.0'
    compile 'de.hdodenhof:circleimageview:2.1.0'
    compile 'com.google.firebase:firebase-ads:10.0.1'
    compile 'com.google.gms:google-services:3.0.0'
    compile 'com.google.android.gms:play-services-ads:10.0.1'
    compile 'com.google.android.gms:play-services:10.0.1'
    compile 'com.android.support:support-v4:+'
    compile 'com.squareup.picasso:picasso:2.3.2'
    compile 'com.nineoldandroids:library:2.4.0'
    compile 'com.daimajia.slider:library:1.1.5@aar'
    compile 'com.r0adkll:slidableactivity:2.0.5'
    compile 'com.r0adkll:slidableactivity:2.0.5-SNAPSHOT'
    compile 'com.github.bumptech.glide:glide:3.6.0'
    compile 'com.google.code.gson:gson:2.4'
    compile 'com.52inc:52Kit-core:0.4.3'
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:cardview-v7:25.1.0'
}

dependencies {
    compile 'com.jakewharton:butterknife:8.4.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'

}

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0'
    }
}






apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.jakewharton.butterknife'

Esqueci de te falar um negócio, desculpa.

Essa opção do olhinho aparece sozinha, quando usamos a biblioteca de design do google.

Ela tem um componente chamando TextInputLayout, precisamos colocar nosso EditTextdentro dele para que ele consiga fazer esse tratamento.

Dá uma olhada :


        <android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="10dp">

            <EditText
                android:id="@+id/login_senha"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="Senha"
                android:inputType="textPassword" />

        </android.support.design.widget.TextInputLayout>

Espero ter ajudado !

Em que versão você tá testando ? Eu acabei de testar esse código na API 25,24 E 23 E NÃO tem nada eu já tinha o TextInputLayout.

<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_marginBottom="16dp"
    android:layout_marginEnd="16dp"
    android:layout_marginLeft="16dp"
    android:layout_marginRight="16dp">


    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="16dp">

        <ImageView
            android:id="@+id/imagem_logo"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:layout_gravity="center"
            android:src="@drawable/logo"
            android:scaleType="fitCenter"
            android:adjustViewBounds="false"
            android:cropToPadding="false"
            android:layout_alignParentTop="false"
            android:contentDescription="@string/mensagem_de_boas_vindas" />

        <TextView
            android:id="@+id/txt_boasvindas"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/mensagem_de_boas_vindas"
            android:textStyle="bold"
            android:textSize="18sp"
            android:paddingBottom="5dp"
            android:paddingTop="5dp"
            android:paddingLeft="40sp"
            android:paddingRight="40sp"
            android:textColor="@color/black"
            android:layout_below="@id/imagem_logo"/>

        <LinearLayout
            android:id="@+id/login_user_form"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_marginTop="30dp"
            android:weightSum="1"
            android:layout_below="@+id/txt_boasvindas">

            <android.support.design.widget.TextInputLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <AutoCompleteTextView
                    android:id="@+id/username"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/prompt_username"
                    android:maxLines="1"
                    android:imeOptions="normal" />

            </android.support.design.widget.TextInputLayout>

            <android.support.design.widget.TextInputLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/text_input_senha">

            <EditText
                android:id="@+id/password"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="@string/prompt_password"
                android:inputType="textPassword" />

            </android.support.design.widget.TextInputLayout>

            <Button
                android:id="@+id/botao_login"
                style="@style/Widget.AppCompat.Button.Colored"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginTop="40dp"
                android:text="@string/action_sign_in"
                android:textColor="@android:color/background_light"
                android:background="@color/colorPrimary" />



        </LinearLayout>

        <TextView
            android:text="@string/dev_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/textDev"
            android:textStyle="normal|bold"
            android:textColor="@color/colorPrimaryDark"
            android:textSize="14sp"
            android:textAlignment="center"
            android:layout_marginTop="510dp" />

    </RelativeLayout>
</ScrollView>
solução!

Maison,

A biblioteca de design do google a gente tem que importar :

compile 'com.android.support:design:24.2.1'

Abraços

Já tem no meu gradle na segunda linha uma versão mias recente será isso ?

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.1.0'
    compile 'com.android.support:design:25.1.0'

No meu caso estou usando a 24 tanto na versão de desenvolvimento quanto na versão da biblioteca !

Matheus era justamente isso se eu colocar:

compile 'com.android.support:design:24.2.1'

o olhinho aparece

No entanto como meu projeto requeria

compile 'com.android.support:appcompat-v7:25.1.0'

Nessa versão não aparece, de tanto procurar pra não ter que mudar a biblioteca eu achei uma solução que é adicionar essa linha no TextInput:

<android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:passwordToggleContentDescription="@string/description"
        app:passwordToggleDrawable="@drawable/another_toggle_drawable"
        app:passwordToggleEnabled="true">

Te agradeço por que não fosse teu feedback não ia desconfiar disso.