91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android怎么實現顯示和隱藏密碼功能

發布時間:2022-06-23 09:52:19 來源:億速云 閱讀:146 作者:iii 欄目:開發技術

這篇文章主要介紹“Android怎么實現顯示和隱藏密碼功能”,在日常操作中,相信很多人在Android怎么實現顯示和隱藏密碼功能問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Android怎么實現顯示和隱藏密碼功能”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

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 每次進入登陸時輸入的密碼都是隱藏的
        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());//將光標移至文字末尾
        }

    }
}

布局代碼

<?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="請設置登錄密碼"
            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 應用的關鍵組件,而 Activity 的啟動和組合方式則是該平臺應用模型的基本組成部分。在編程范式中,應用是通過 main() 方法啟動的,而 Android 系統與此不同,它會調用與其生命周期特定階段相對應的特定回調方法來啟動 Activity 實例中的代碼。

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

Activity 的概念

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

Activity 類的目的就是促進這種范式的實現。當一個應用調用另一個應用時,調用方應用會調用另一個應用中的 Activity,而不是整個應用。通過這種方式,Activity 充當了應用與用戶互動的入口點。您可以將 Activity 實現為 Activity 類的子類。

Activity 提供窗口供應用在其中繪制界面。此窗口通常會填滿屏幕,但也可能比屏幕小,并浮動在其他窗口上面。通常,一個 Activity 實現應用中的一個屏幕。例如,應用中的一個 Activity 實現“偏好設置”屏幕,而另一個 Activity 實現“選擇照片”屏幕。

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

雖然應用中的各個 Activity 協同工作形成統一的用戶體驗,但每個 Activity 與其他 Activity 之間只存在松散的關聯,應用內不同 Activity 之間的依賴關系通常很小。事實上,Activity 經常會啟動屬于其他應用的 Activity。例如,瀏覽器應用可能會啟動社交媒體應用的“分享”Activity。

要在應用中使用 Activity,您必須在應用的清單中注冊關于 Activity 的信息,并且必須適當地管理 Activity 的生命周期。本文的后續內容將介紹這些主題。

配置清單

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

聲明 Activity

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

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

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

注意:發布應用后,就不應再更改 Activity 名稱,否則可能會破壞某些功能,例如應用快捷方式。

聲明 intent 過濾器

Intent 過濾器是 Android 平臺的一項非常強大的功能。借助這項功能,您不但可以根據顯式請求啟動 Activity,還可以根據隱式請求啟動 Activity。例如,顯式請求可能會告訴系統“在 Gmail 應用中啟動&lsquo;發送電子郵件&rsquo;Activity”,而隱式請求可能會告訴系統“在任何能夠完成此工作的 Activity 中啟動&lsquo;發送電子郵件&rsquo;屏幕”。當系統界面詢問用戶使用哪個應用來執行任務時,這就是 intent 過濾器在起作用。

要使用此功能,您需要在 元素中聲明 屬性。此元素的定義包括 元素,以及可選的 元素和/或 元素。這些元素組合在一起,可以指定 Activity 能夠響應的 intent 類型。例如,以下代碼段展示了如何配置一個發送文本數據并接收其他 Activity 的文本數據發送請求的 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 生命周期 一個 Activity 在其生命周期中會經歷多種狀態。您可以使用一系列回調來處理狀態之間的轉換。下面幾節將介紹這些回調。

onCreate()

您必須實現此回調,它會在系統創建您的 Activity 時觸發。您的實現應該初始化 Activity 的基本組件:例如,您的應用應該在此處創建視圖并將數據綁定到列表。最重要的是,您必須在此處調用 setContentView() 來定義 Activity 界面的布局。

onCreate() 完成后,下一個回調將是 onStart()。

onStart()

onCreate() 退出后,Activity 將進入“已啟動”狀態,并對用戶可見。此回調包含 Activity 進入前臺與用戶進行互動之前的最后準備工作。

onResume()

系統會在 Activity 開始與用戶互動之前調用此回調。此時,該 Activity 位于 Activity 堆棧的頂部,并會捕獲所有用戶輸入。應用的大部分核心功能都是在 onResume() 方法中實現的。

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

onPause()

當 Activity 失去焦點并進入“已暫停”狀態時,系統就會調用 onPause()。例如,當用戶點按“返回”或“最近使用的應用”按鈕時,就會出現此狀態。當系統為您的 Activity 調用 onPause() 時,從技術上來說,這意味著您的 Activity 仍然部分可見,但大多數情況下,這表明用戶正在離開該 Activity,該 Activity 很快將進入“已停止”或“已恢復”狀態。

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

您不應使用 onPause() 來保存應用或用戶數據、進行網絡呼叫或執行數據庫事務。有關保存數據的信息,請參閱保存和恢復 Activity 狀態。

onPause() 執行完畢后,下一個回調為 onStop()或 onResume(),具體取決于 Activity 進入“已暫停”狀態后發生的情況。

onStop()

當 Activity 對用戶不再可見時,系統會調用 onStop()。出現這種情況的原因可能是 Activity 被銷毀,新的 Activity 啟動,或者現有的 Activity 正在進入“已恢復”狀態并覆蓋了已停止的 Activity。在所有這些情況下,停止的 Activity 都將完全不再可見。

系統調用的下一個回調將是 onRestart()(如果 Activity 重新與用戶互動)或者 onDestroy()(如果 Activity 徹底終止)。

onRestart()

當處于“已停止”狀態的 Activity 即將重啟時,系統就會調用此回調。onRestart() 會從 Activity 停止時的狀態恢復 Activity。
此回調后面總是跟著 onStart()。

onDestroy()

系統會在銷毀 Activity 之前調用此回調。

此回調是 Activity 接收的最后一個回調。通常,實現 onDestroy() 是為了確保在銷毀 Activity 或包含該 Activity 的進程時釋放該 Activity 的所有資源。

到此,關于“Android怎么實現顯示和隱藏密碼功能”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洮南市| 夹江县| 江都市| 通州区| 乐清市| 广丰县| 青岛市| 普格县| 铁岭县| 德江县| 富裕县| 拜城县| 克什克腾旗| 内黄县| 柞水县| 德化县| 祁阳县| 海丰县| 砚山县| 博湖县| 黎城县| 襄垣县| 伽师县| 普宁市| 威海市| 嵊州市| 阿克陶县| 措勤县| 龙海市| 克山县| 白沙| 大姚县| 屏南县| 准格尔旗| 贺兰县| 新密市| 喀什市| 建湖县| 富顺县| 科技| 望都县|