亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android實(shí)現(xiàn)顯示和隱藏密碼功能的示例代碼

 更新時(shí)間:2022年06月22日 11:55:11   作者:不良使  
在前端中我們知道用javascript就可以可以很容易實(shí)現(xiàn)密碼的顯示與隱藏,本文將大家詳細(xì)介紹Android是如何實(shí)現(xiàn)顯示和隱藏密碼功能的,需要的可以參考一下

在前端中我們知道用javascript就可以可以很容易實(shí)現(xiàn),那么在Android中怎么實(shí)現(xiàn)這個(gè)功能呢?

Java代碼

package com.example.test2;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.text.method.HideReturnsTransformationMethod;
import android.text.method.PasswordTransformationMethod;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

    private EditText password;
    private ImageView imageView;
    private boolean flag=true;
    private HideReturnsTransformationMethod method_show;



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

        password = findViewById(R.id.password);
        imageView = findViewById(R.id.img);
        imageView.setOnClickListener(this);


    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.img:
                changeImage();

        }
    }

    private void changeImage() {
        // todo 每次進(jìn)入登陸時(shí)輸入的密碼都是隱藏的
        PasswordTransformationMethod methodHide=PasswordTransformationMethod.getInstance();
        password.setTransformationMethod(methodHide);

        if(flag){
            imageView.setImageDrawable(this.getResources().getDrawable(R.drawable.eye1));
            flag=false;
            // todo 隱藏密碼
            PasswordTransformationMethod method_hide = PasswordTransformationMethod.getInstance();
            password.setTransformationMethod(method_hide);
        }
        else{
            imageView.setImageDrawable(this.getResources().getDrawable(R.drawable.eye2));
            flag=true;
            // todo  顯示密碼
            method_show= HideReturnsTransformationMethod.getInstance();
            password.setTransformationMethod(method_show);

        }

        if (!password.getText().toString().trim().equals("")) {
            password.setSelection(password.getText().toString().trim().length());//將光標(biāo)移至文字末尾
        }

    }
}

布局代碼

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_height="match_parent"
    android:layout_width="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@color/white"
        android:orientation="horizontal" >
        <EditText
            android:id="@+id/password"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="10dp"
            android:inputType="textPassword"
            android:hint="請?jiān)O(shè)置登錄密碼"
            android:background="@null"/>

        <button
            android:id="@+id/btn"
            android:layout_width="89dp"
            android:layout_height="match_parent"
            android:background="@drawable/eye2"/>
        

    </LinearLayout>


</LinearLayout>

睜眼閉眼資源

Activity 類是 Android 應(yīng)用的關(guān)鍵組件,而 Activity 的啟動(dòng)和組合方式則是該平臺(tái)應(yīng)用模型的基本組成部分。在編程范式中,應(yīng)用是通過 main() 方法啟動(dòng)的,而 Android 系統(tǒng)與此不同,它會(huì)調(diào)用與其生命周期特定階段相對應(yīng)的特定回調(diào)方法來啟動(dòng) Activity 實(shí)例中的代碼。

本文介紹了 Activity 的概念,并提供了有關(guān)如何使用 Activity 的簡要說明。

Activity 的概念

移動(dòng)應(yīng)用體驗(yàn)與桌面體驗(yàn)的不同之處在于,用戶與應(yīng)用的互動(dòng)并不總是在同一位置開始,而是經(jīng)常以不確定的方式開始。例如,如果您從主屏幕打開電子郵件應(yīng)用,可能會(huì)看到電子郵件列表,如果您通過社交媒體應(yīng)用啟動(dòng)電子郵件應(yīng)用,則可能會(huì)直接進(jìn)入電子郵件應(yīng)用的郵件撰寫界面。

Activity 類的目的就是促進(jìn)這種范式的實(shí)現(xiàn)。當(dāng)一個(gè)應(yīng)用調(diào)用另一個(gè)應(yīng)用時(shí),調(diào)用方應(yīng)用會(huì)調(diào)用另一個(gè)應(yīng)用中的 Activity,而不是整個(gè)應(yīng)用。通過這種方式,Activity 充當(dāng)了應(yīng)用與用戶互動(dòng)的入口點(diǎn)。您可以將 Activity 實(shí)現(xiàn)為 Activity 類的子類。

Activity 提供窗口供應(yīng)用在其中繪制界面。此窗口通常會(huì)填滿屏幕,但也可能比屏幕小,并浮動(dòng)在其他窗口上面。通常,一個(gè) Activity 實(shí)現(xiàn)應(yīng)用中的一個(gè)屏幕。例如,應(yīng)用中的一個(gè) Activity 實(shí)現(xiàn)“偏好設(shè)置”屏幕,而另一個(gè) Activity 實(shí)現(xiàn)“選擇照片”屏幕。

大多數(shù)應(yīng)用包含多個(gè)屏幕,這意味著它們包含多個(gè) Activity。通常,應(yīng)用中的一個(gè) Activity 會(huì)被指定為主 Activity,這是用戶啟動(dòng)應(yīng)用時(shí)出現(xiàn)的第一個(gè)屏幕。然后,每個(gè) Activity 可以啟動(dòng)另一個(gè) Activity,以執(zhí)行不同的操作。例如,一個(gè)簡單的電子郵件應(yīng)用中的主 Activity 可能會(huì)提供顯示電子郵件收件箱的屏幕。主 Activity 可能會(huì)從該屏幕啟動(dòng)其他 Activity,以提供執(zhí)行寫郵件和打開郵件這類任務(wù)的屏幕。

雖然應(yīng)用中的各個(gè) Activity 協(xié)同工作形成統(tǒng)一的用戶體驗(yàn),但每個(gè) Activity 與其他 Activity 之間只存在松散的關(guān)聯(lián),應(yīng)用內(nèi)不同 Activity 之間的依賴關(guān)系通常很小。事實(shí)上,Activity 經(jīng)常會(huì)啟動(dòng)屬于其他應(yīng)用的 Activity。例如,瀏覽器應(yīng)用可能會(huì)啟動(dòng)社交媒體應(yīng)用的“分享”Activity。

要在應(yīng)用中使用 Activity,您必須在應(yīng)用的清單中注冊關(guān)于 Activity 的信息,并且必須適當(dāng)?shù)毓芾?Activity 的生命周期。本文的后續(xù)內(nèi)容將介紹這些主題。

配置清單

要使應(yīng)用能夠使用 Activity,您必須在清單中聲明 Activity 及其特定屬性。

聲明 Activity

要聲明 Activity,請打開清單文件,并添加 元素作為 元素的子元素。例如:

<manifest ... >
  <application ... >
      <activity android:name=".ExampleActivity" />
      ...
  </application ... >
  ...
</manifest >

此元素唯一的必要屬性是 android:name,該屬性用于指定 Activity 的類名稱。您也可以添加用于定義標(biāo)簽、圖標(biāo)或界面主題等 Activity 特征的屬性。如需詳細(xì)了解上述及其他屬性,請參閱 元素參考文檔。

注意:發(fā)布應(yīng)用后,就不應(yīng)再更改 Activity 名稱,否則可能會(huì)破壞某些功能,例如應(yīng)用快捷方式。

聲明 intent 過濾器

Intent 過濾器是 Android 平臺(tái)的一項(xiàng)非常強(qiáng)大的功能。借助這項(xiàng)功能,您不但可以根據(jù)顯式請求啟動(dòng) Activity,還可以根據(jù)隱式請求啟動(dòng) Activity。例如,顯式請求可能會(huì)告訴系統(tǒng)“在 Gmail 應(yīng)用中啟動(dòng)‘發(fā)送電子郵件’Activity”,而隱式請求可能會(huì)告訴系統(tǒng)“在任何能夠完成此工作的 Activity 中啟動(dòng)‘發(fā)送電子郵件’屏幕”。當(dāng)系統(tǒng)界面詢問用戶使用哪個(gè)應(yīng)用來執(zhí)行任務(wù)時(shí),這就是 intent 過濾器在起作用。

要使用此功能,您需要在 元素中聲明 屬性。此元素的定義包括 元素,以及可選的 元素和/或 元素。這些元素組合在一起,可以指定 Activity 能夠響應(yīng)的 intent 類型。例如,以下代碼段展示了如何配置一個(gè)發(fā)送文本數(shù)據(jù)并接收其他 Activity 的文本數(shù)據(jù)發(fā)送請求的 Activity:

<activity android:name=".ExampleActivity" android:icon="@drawable/app_icon">
    <intent-filter>
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="text/plain" />
    </intent-filter>
</activity>

管理 Activity 生命周期 一個(gè) Activity 在其生命周期中會(huì)經(jīng)歷多種狀態(tài)。您可以使用一系列回調(diào)來處理狀態(tài)之間的轉(zhuǎn)換。下面幾節(jié)將介紹這些回調(diào)。

onCreate()

您必須實(shí)現(xiàn)此回調(diào),它會(huì)在系統(tǒng)創(chuàng)建您的 Activity 時(shí)觸發(fā)。您的實(shí)現(xiàn)應(yīng)該初始化 Activity 的基本組件:例如,您的應(yīng)用應(yīng)該在此處創(chuàng)建視圖并將數(shù)據(jù)綁定到列表。最重要的是,您必須在此處調(diào)用 setContentView() 來定義 Activity 界面的布局。

onCreate() 完成后,下一個(gè)回調(diào)將是 onStart()。

onStart()

onCreate() 退出后,Activity 將進(jìn)入“已啟動(dòng)”狀態(tài),并對用戶可見。此回調(diào)包含 Activity 進(jìn)入前臺(tái)與用戶進(jìn)行互動(dòng)之前的最后準(zhǔn)備工作。

onResume()

系統(tǒng)會(huì)在 Activity 開始與用戶互動(dòng)之前調(diào)用此回調(diào)。此時(shí),該 Activity 位于 Activity 堆棧的頂部,并會(huì)捕獲所有用戶輸入。應(yīng)用的大部分核心功能都是在 onResume() 方法中實(shí)現(xiàn)的。

onResume() 回調(diào)后面總是跟著 onPause() 回調(diào)。

onPause()

當(dāng) Activity 失去焦點(diǎn)并進(jìn)入“已暫停”狀態(tài)時(shí),系統(tǒng)就會(huì)調(diào)用 onPause()。例如,當(dāng)用戶點(diǎn)按“返回”或“最近使用的應(yīng)用”按鈕時(shí),就會(huì)出現(xiàn)此狀態(tài)。當(dāng)系統(tǒng)為您的 Activity 調(diào)用 onPause() 時(shí),從技術(shù)上來說,這意味著您的 Activity 仍然部分可見,但大多數(shù)情況下,這表明用戶正在離開該 Activity,該 Activity 很快將進(jìn)入“已停止”或“已恢復(fù)”狀態(tài)。

如果用戶希望界面繼續(xù)更新,則處于“已暫停”狀態(tài)的 Activity 也可以繼續(xù)更新界面。例如,顯示導(dǎo)航地圖屏幕或播放媒體播放器的 Activity 就屬于此類 Activity。即使此類 Activity 失去了焦點(diǎn),用戶仍希望其界面繼續(xù)更新。

您不應(yīng)使用 onPause() 來保存應(yīng)用或用戶數(shù)據(jù)、進(jìn)行網(wǎng)絡(luò)呼叫或執(zhí)行數(shù)據(jù)庫事務(wù)。有關(guān)保存數(shù)據(jù)的信息,請參閱保存和恢復(fù) Activity 狀態(tài)。

onPause() 執(zhí)行完畢后,下一個(gè)回調(diào)為 onStop()或 onResume(),具體取決于 Activity 進(jìn)入“已暫停”狀態(tài)后發(fā)生的情況。

onStop()

當(dāng) Activity 對用戶不再可見時(shí),系統(tǒng)會(huì)調(diào)用 onStop()。出現(xiàn)這種情況的原因可能是 Activity 被銷毀,新的 Activity 啟動(dòng),或者現(xiàn)有的 Activity 正在進(jìn)入“已恢復(fù)”狀態(tài)并覆蓋了已停止的 Activity。在所有這些情況下,停止的 Activity 都將完全不再可見。

系統(tǒng)調(diào)用的下一個(gè)回調(diào)將是 onRestart()(如果 Activity 重新與用戶互動(dòng))或者 onDestroy()(如果 Activity 徹底終止)。

onRestart()

當(dāng)處于“已停止”狀態(tài)的 Activity 即將重啟時(shí),系統(tǒng)就會(huì)調(diào)用此回調(diào)。onRestart() 會(huì)從 Activity 停止時(shí)的狀態(tài)恢復(fù) Activity。
此回調(diào)后面總是跟著 onStart()。

onDestroy()

系統(tǒng)會(huì)在銷毀 Activity 之前調(diào)用此回調(diào)。

此回調(diào)是 Activity 接收的最后一個(gè)回調(diào)。通常,實(shí)現(xiàn) onDestroy() 是為了確保在銷毀 Activity 或包含該 Activity 的進(jìn)程時(shí)釋放該 Activity 的所有資源。

以上就是Android實(shí)現(xiàn)顯示和隱藏密碼功能的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于Android顯示 隱藏密碼的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論