Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Android

วิธีป้องกัน EditText ไม่ให้โฟกัสอัตโนมัติเมื่อเริ่ม Activity ใน Android

วิธีป้องกัน EditText ไม่ให้โฟกัสอัตโนมัติเมื่อเริ่ม Activity ใน Android

มีสถานการณ์มากมายที่เราไม่ต้องการให้คีย์บอร์ดแสดงเมื่อ Activity เริ่มต้น ตัวอย่างนี้สาธิตวิธีหยุด EditText ไม่ให้ได้รับโฟกัสเมื่อ Activity เริ่มต้น

ขั้นตอนที่ 1 - สร้างโปรเจกต์ใหม่ใน Android Studio

ไปที่ File → New Project และกรอกรายละเอียดที่จำเป็นทั้งหมดเพื่อสร้างโปรเจกต์ใหม่

ขั้นตอนที่ 2 - เพิ่มโค้ดใน res/layout/activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:background="#dde4dd"
    android:orientation="vertical">
    <EditText
        android:id="@+id/editText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</LinearLayout>

ในโค้ดด้านบน เราให้ EditText หนึ่งตัว โดยค่าเริ่มต้นมี request focus

ขั้นตอนที่ 3 - เพิ่มโค้ดใน src/MainActivity.java

package com.example.andy.myapplication;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {
    EditText editText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        editText = findViewById(R.id.editText);
        editText.setFocusableInTouchMode(true);
    }

    @Override
    protected void onResume() {
        super.onResume();
        editText.clearFocus();
    }
}

ใน onResume() เราล้างโฟกัส และเมื่อผู้ใช้คลิกที่ EditText จะได้รับโฟกัส ในการลบโฟกัส เราต้องใช้โค้ดดังนี้:

editText.clearFocus();

เพื่อให้ได้รับโฟกัสเมื่อผู้ใช้สัมผัส EditText เราต้องใช้โค้ดดังนี้:

editText.setFocusableInTouchMode(true);

ลองรันแอปพลิเคชันของคุณ สมมติว่าคุณเชื่อมต่ออุปกรณ์ Android จริงกับคอมพิวเตอร์แล้ว เพื่อรันแอปจาก Android Studio ให้เปิดไฟล์กิจกรรมของโปรเจกต์หนึ่งและคลิกไอคอน Run จากแถบเครื่องมือ เลือกอุปกรณ์มือถือของคุณเป็นตัวเลือก และตรวจสอบอุปกรณ์ซึ่งจะแสดงหน้าจอเริ่มต้น

วิธีป้องกัน EditText ไม่ให้โฟกัสอัตโนมัติเมื่อเริ่ม Activity ใน Android

ในผลลัพธ์ด้านบน ไม่แสดงคีย์บอร์ด หมายถึง EditText ไม่ได้โฟกัส ตอนนี้คลิกที่ EditText จะแสดงคีย์บอร์ดดังภาพด้านล่าง

วิธีป้องกัน EditText ไม่ให้โฟกัสอัตโนมัติเมื่อเริ่ม Activity ใน Android