Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

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.