কীভাবে অ্যান্ড্রয়েড অনুসন্ধান ভিভ টেক্সট পরিবর্তন করবেন


92

সন্ধান ভিউয়ের জন্য কী সেট সেটেক্সট () পদ্ধতি আছে বা এরকম কিছু? আমি সার্চভিউতে এই জাতীয়ভাবে অনুসন্ধানের পাঠ্যটি সেট করার চেষ্টা করি তবে এর মতো কোনও পদ্ধতি নেই।

searchView.setText(searchToken);

উত্তর:


166

বিস্মিত ও চেষ্টা করার পরে আমি জানতে পারলাম যে এপিআই নামক একটি সেট রয়েছে যা আপনি সন্ধান ভিউ টেক্সট সেট করেছেন সেটআপকুয়েরি () নামক একটি পদ্ধতি রয়েছে এবং আপনি অনুসন্ধানটি জমা দিতে বা বুলিয়ান প্যারামিটারটি ব্যবহার না করে বেছে নিতে পারেন।

searchView.setQuery(searchToken, false);

4
মিথ্যা বুলিয়ান প্যারামিটার সেট করার পরেও এটি আবার জিজ্ঞাসা করে ny কোনও পরামর্শ সাহায্য করবে।
রাজ ত্রিবেদী

আমি এটি করেছি, তবে দ্বিতীয় প্যারামটি সেট করে রাখছি trueযাতে কোয়েরিটিও কার্যকর হয়, তবে মনে রাখবেন যে কোয়েরিটি কার্যকরভাবে সম্পাদিত হয়ে গেলেও, ম্যানুয়ালি ফোকাস দেওয়া পর্যন্ত পাঠ্য বাক্সটি ফাঁকা থাকে। আমি কীভাবে নিশ্চিত করব যে স্বয়ংক্রিয়-সেট মানটি স্বয়ংক্রিয়ভাবে প্রদর্শিত হবে?
nemesisfixx

4
ঠিক আছে. দ্বিতীয় যুক্তি হ'ল "দাখিল করুন"
রোঘায়েহে হোসেইসেইনি

36

আপনি setQuery()পাঠ্যবক্সে পাঠ্য পরিবর্তন করতে ব্যবহার করতে পারেন ।

যাইহোক, setQuery()পদ্ধতিটি অনুসন্ধান দৃশ্যের ফোকাসের স্থিতিটিকে ট্রিগার করে, সুতরাং এই পদ্ধতিটি চালু হওয়ার পরে একটি কীবোর্ড পর্দায় প্রদর্শিত হবে।

এই সমস্যার সমাধানের জন্য, কেবল এটি ফোকাস searchView.clearFocus()করার জন্য setQuery()পদ্ধতির পরে কল করুন এবং কীবোর্ডটি স্ক্রিনে প্রদর্শিত হবে না।

উদাহরণ:

String suggestWord = intent.getDataString();
searchView.setQuery(suggestWord, false);
searchView.clearFocus();

অনুসন্ধান ভিউ.সেটআইকনাইফাইড (মিথ্যা) লেখার পরে দেখাবেন না; দেখান
lolo_house 12'17

8

এটিই আমার পক্ষে কাজ করেছিল

    MenuItem sItem = menu.findItem(R.id.search);
    SearchView searchView = (SearchView) sItem.getActionView();

    sItem.expandActionView();
    searchView.setQuery("your text", false);

4
সহজ, দ্রুত জীবন রক্ষার সমাধান!
এরেন

7

আপনি SearchViewকিছু পাঠ্য সহ প্রি-ফাইল করতে searchView.setQuery(text, false)চাইলে বাক্সটির বাইরে কাজ করবে না। কারণটি যখন SearchViewপ্রসারিত হয়

searchView.onActionViewExpanded()

কল করুন যা কল করে searchView.setText("")এবং আমাদের সেট করা কোনও পাঠ্য সাফ করে।

সমাধান একবার একটি শ্রোতা সম্প্রসারণ সেট এবং প্রাক fil টেক্সট সেট করতে হয় SearchViewপ্রসারিত হয়

override fun onCreateOptionsMenu(menu: Menu): Boolean {
    menuInflater.inflate(R.menu.main, menu)
    val searchView = menu.findItem(R.id.action_search).actionView as SearchView
    menu.findItem(R.id.action_search).setOnActionExpandListener(object : MenuItem.OnActionExpandListener {
        override fun onMenuItemActionExpand(item: MenuItem?): Boolean {
            // it is important to call this before we set our own query text.
            searchView.onActionViewExpanded()
            searchView.setQuery("Prefil Text", false)
            return true
        }

        override fun onMenuItemActionCollapse(item: MenuItem?) = true
    })
    return true
}

দুর্দান্ত উত্তর। কিন্তু হুঁশিয়ার searchView.onActionViewExpanded () এবং searchView.setQuery () উভয় triggering onQueryTextChange () যদি আপনি মোতায়েন আছে searchView.setOnQueryTextListener । প্রথম ট্রিগারটি স্ট্রিংটিকে দ্বিতীয় ট্রিগার সরবরাহ করা সম্পর্কে খুব ভাল খালি করতে পারে।
খারাপ লোকসান

0

আপনি যদি অনুসন্ধান ভিউটি প্রসারিত করতে চান এবং ব্যবহারকারী x (কাছাকাছি) চাপার পরে এটি আইকনটিতে ফিরে সঙ্কুচিত হতে পারে, উপায়টি হল:

searchView.isIconified = false // Expand it
searchView.setQuery("your text here", false) // true if you want to submit, otherwise false
searchView.clearFocus() // so the keyboard is not show up.

দ্রষ্টব্য: আপনি যদি এটি ব্যবহার করে প্রসারিত করেন:

searchView.onActionViewExpanded()

ব্যবহারকারী ট্যাপ এক্স (বন্ধ) এর পরে অনুসন্ধানভিউ সঙ্কুচিত হবে না

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.