অ্যান্ড্রয়েড: কীওয়ার্ড কীভাবে এন্টার বোতামটি "অনুসন্ধান" বলবে এবং এর ক্লিকটি পরিচালনা করবে?


373

আমি এটা বুঝতে পারি না। কিছু অ্যাপ্লিকেশানের একটি সম্পাদনা পাঠ্য (পাঠ্যবাক্স) থাকে যা আপনি যখন এটি স্পর্শ করেন এবং এটি অন-স্ক্রীন কীবোর্ড নিয়ে আসে তখন কীবোর্ডটি একটি এন্টার কীটির পরিবর্তে "অনুসন্ধান" বোতামটি রাখে।

আমি এটি বাস্তবায়ন করতে চাই। আমি কীভাবে সেই অনুসন্ধান বোতামটি প্রয়োগ করতে এবং অনুসন্ধান বোতামটির টিপস সনাক্ত করতে পারি?

সম্পাদনা : কীভাবে অনুসন্ধান বোতামটি প্রয়োগ করতে হবে তা পাওয়া গেছে; এক্সএমএল android:imeOptions="actionSearch"বা জাভাতে EditTextSample.setImeOptions(EditorInfo.IME_ACTION_SEARCH);। তবে আমি কীভাবে সেই অনুসন্ধান বোতামটি টিপে ব্যবহারকারীকে পরিচালনা করব? এর সাথে কিছু করার আছে android:imeActionId?


3
নোট করুন যে imeOptions কিছু ডিভাইসে কাজ না করতে পারে। দেখুন এই এবং এই
এরমোলাই

উত্তর:


904

বিন্যাসে অনুসন্ধানের জন্য আপনার ইনপুট পদ্ধতির বিকল্পগুলি সেট করুন।

<EditText
    android:imeOptions="actionSearch" 
    android:inputType="text" />

জাভাতে সম্পাদক অ্যাকশন শ্রোতা যুক্ত করুন।

editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (actionId == EditorInfo.IME_ACTION_SEARCH) {
            performSearch();
            return true;
        }
        return false;
    }
});

82
ওএস ২.৩. On এ আমি অ্যান্ড্রয়েড না লাগানো পর্যন্ত কাজ করে না: ইনপুট টাইপ = "পাঠ্য" বৈশিষ্ট্য।
Thanhbinh84

41
অ্যান্ড্রয়েড: ইনপুটটাইপ = "পাঠ্য" এছাড়াও আমার জন্য অ্যান্ড্রয়েড ২.৩.৫ এবং
০.৪ এ ছিল

6
@ কারোল EditTextএকটি সাব ক্লাস TextView
হোয়েটিটল

13
অ্যান্ড্রয়েড: ইনপুটটাইপ = "পাঠ্য" এছাড়াও 4.4.0 - 4.4.2 (অ্যান্ড্রয়েড কিটক্যাট) এর জন্য প্রয়োজনীয়।
ব্যবহারকারী 818455

12
হ্যাঁ, অ্যান্ড্রয়েড ইনপুট = "পাঠ্য" এখনও 5.0 মধ্যে :) প্রয়োজন হয়
lionelmessi

19

ব্যবহারকারী ক্লিক করলে কীবোর্ডটি লুকান। রবি পুকুরের উত্তর যুক্ত করুন

private void performSearch() {
    editText.clearFocus();
    InputMethodManager in = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    in.hideSoftInputFromWindow(searchEditText.getWindowToken(), 0);
    //...perform search
}

7

ইন xmlফাইল, করা imeOptions="actionSearch"এবং inputType="text", maxLines="1":

<EditText
    android:id="@+id/search_box"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="@string/search"
    android:imeOptions="actionSearch"
    android:inputType="text"
    android:maxLines="1" />

5

কোটলিনে

evLoginPassword.setOnEditorActionListener { _, actionId, _ ->
    if (actionId == EditorInfo.IME_ACTION_DONE) {
        doTheLoginWork()
    }
    true
}

আংশিক এক্সএমএল কোড

 <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
       <android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"

            android:layout_marginBottom="8dp"
            android:layout_marginTop="8dp"
            android:paddingLeft="24dp"
            android:paddingRight="24dp">

            <EditText
                android:id="@+id/evLoginUserEmail"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="@string/email"
                android:inputType="textEmailAddress"
                android:textColor="@color/black_54_percent" />
        </android.support.design.widget.TextInputLayout>

        <android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="8dp"
            android:layout_marginTop="8dp"
            android:paddingLeft="24dp"
            android:paddingRight="24dp">

            <EditText
                android:id="@+id/evLoginPassword"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="@string/password"
                android:inputType="textPassword"
                android:imeOptions="actionDone"
                android:textColor="@color/black_54_percent" />
        </android.support.design.widget.TextInputLayout>
</LinearLayout>

1

এই উত্তরটি পাঠ্য ইনপুট এডিটটেক্সট এর জন্য:

বিন্যাসে এক্সএমএল ফাইল আপনার প্রয়োজনীয় ধরণের জন্য আপনার ইনপুট পদ্ধতির বিকল্পগুলি সেট করে। উদাহরণস্বরূপ সম্পন্ন

<com.google.android.material.textfield.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <com.google.android.material.textfield.TextInputEditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:imeOptions="actionGo"/>

একইভাবে, আপনি ক্রিয়াকলাপ জমা, অ্যাকশনসন্ধান ইত্যাদিতে imeOptions সেট করতে পারেন

জাভাতে সম্পাদক অ্যাকশন শ্রোতা যুক্ত করুন।

textInputLayout.getEditText().setOnEditorActionListener(new 

    TextView.OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if (actionId == EditorInfo.IME_ACTION_GO) {
                performYourAction();
                return true;
            }
            return false;
        }
    });

আপনি যদি কোটলিন ব্যবহার করছেন:

textInputLayout.editText.setOnEditorActionListener { _, actionId, _ ->
    if (actionId == EditorInfo.IME_ACTION_GO) {
        performYourAction()
    }
    true
}

0

এক্সএমএল দ্বারা:

 <EditText
        android:id="@+id/search_edit"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/search"
        android:imeOptions="actionSearch"
        android:inputType="text" />

জাভা দ্বারা:

 editText.clearFocus();
    InputMethodManager in = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    in.hideSoftInputFromWindow(searchEditText.getWindowToken(), 0);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.