কম্পিউটার টিউটোরিয়াল

অ্যান্ড্রয়েডে EditText ফোকাস পেলে সফ্ট কিবোর্ড দেখানোর পদ্ধতি

InputMethodManager ব্যবহার করে সফ্ট কিবোর্ড প্রোগ্রাম্যাটিক্যালি দেখানো

অ্যান্ড্রয়েডে EditText ফোকাস পেলে অটোমেটিক্যালি কিবোর্ড দেখানোর জন্য `InputMethodManager` এবং `showSoftInput()` মেথড ব্যবহার করা হয়। এটি ইউজার এক্সপেরিয়েন্স উন্নত করে কারণ ইউজারকে ম্যানুয়ালি কিবোর্ড খুলতে হয় না।

ধাপ ১: প্রজেক্ট তৈরি করুন

স্ট্যান্ডার্ড অ্যান্ড্রয়েড প্রজেক্ট।

ধাপ ২: লেআউট - কেবল EditText

res/layout/activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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">
    <EditText
        android:id="@+id/editText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true" />
</RelativeLayout>

ধাপ ৩: কিবোর্ড দেখানোর লজিক

src/MainActivity.java:

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
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);
        showSoftKeyboard(editText);
    }
    
    public void showSoftKeyboard(View view) {
        // ফোকাস চাইতে হয়
        if (view.requestFocus()) {
            InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            if (imm != null) {
                imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
            }
        }
    }
}

বিকল্প পদ্ধতি: XML-এ অটো-ফোকাস

কোড ছাড়া XML-এই করা যায়:

<EditText
    android:id="@+id/editText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:focusable="true"
    android:focusableInTouchMode="true">
    
    <requestFocus />
</EditText>

অথবা ম্যানিফেস্টে এক্টিভিটির জন্য:

<activity
    android:name=".MainActivity"
    android:windowSoftInputMode="stateVisible"> <!-- অথবা stateAlwaysVisible -->
    ...
</activity>

InputMethodManager ফ্ল্যাগস

কিবোর্ড হাইড করা

// নির্দিষ্ট ভিউ থেকে
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);

// কারেন্ট ফোকাস থেকে
View view = getCurrentFocus();
if (view != null) {
    imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}

সেরা অনুশীলন

  • onResume-এ দেখান: এক্টিভিটি রিজিউম হলে কিবোর্ড দেখান
  • null চেক: `InputMethodManager` null হতে পারে
  • ফোকাস প্রথমে: `requestFocus()` কল করুন `showSoftInput()`-এর আগে
  • লifecycle-aware: লাইফসাইকেল মেথডে উপযুক্তভাবে হ্যান্ডল করুন
অ্যান্ড্রয়েডে EditText ফোকাস পেলে সফ্ট কিবোর্ড দেখানোর পদ্ধতি
  1. আপনার অ্যান্ড্রয়েড কীবোর্ড পরিবর্তন করার পদ্ধতি

  2. Android-এ কীবোর্ড কীভাবে পরিবর্তন করবেন?

  3. অ্যান্ড্রয়েড কীবোর্ড ইতিহাস মুছে ফেলুন: ধাপে ধাপে গাইড

  4. আপনার অ্যান্ড্রয়েড কীবোর্ড রিসাইজ করুন: ভালো দৃশ্যমানতার জন্য সহজ টিপস

কপিরাইট © https://bd.wsxdn.com সমস্ত অধিকার সংরক্ষিত
ফ্ল্যাগবর্ণনা
SHOW_IMPLICITইমপ্লিসিট রিকোয়েস্ট (ডিফল্ট আচরণ)
SHOW_FORCEDবাধya করে দেখান (সতর্কতা: ব্যবহারকারী অভিজ্ঞতা বাধা দিতে পারে)
HIDE_IMPLICIT_ONLYশুধু ইমপ্লিসিটলি হাইড করুন
HIDE_NOT_ALWAYSহাইড করুন কিন্তু সবসময় নয়