कैसे Android खोज दृश्य पाठ को बदलने के लिए


91

वहाँ एक setText () SearchView के लिए विधि या ऐसा कुछ है? मैं इस तरह से खोज पाठ में खोज पाठ सेट करने का प्रयास करता हूं, लेकिन इस तरह की कोई विधि नहीं है।

searchView.setText(searchToken);

जवाबों:


164

सोचने और कोशिश करने के बाद मुझे पता चला कि एपीआई में सेटिवि () नाम का एक तरीका है, जिसे आप सर्चव्यू टेक्स्ट सेट करते हैं और आप बूलियन पैरामीटर का उपयोग करके सर्च सबमिट करना चुन सकते हैं या नहीं।

searchView.setQuery(searchToken, false);

3
बूलियन पैरामीटर को गलत निर्धारित करने के बाद भी यह फिर से पूछताछ करता है। किसी भी सुझाव से मदद मिलेगी।
राज त्रिवेदी

मैंने ऐसा किया है, लेकिन 2 पैरा को सेट करने के लिए trueतो क्वेरी को भी निष्पादित किया जाता है, लेकिन ध्यान दें कि यद्यपि क्वेरी अच्छी तरह से निष्पादित होती है, पाठ बॉक्स रिक्त रहता है, जब तक कि मैन्युअल रूप से ध्यान केंद्रित नहीं किया जाता है। मैं यह कैसे सुनिश्चित करूंगा कि स्वतः-निर्धारित मूल्य स्वचालित रूप से भी प्रदर्शित हो?
nemesisfixx

1
यह ठीक है। दूसरा तर्क "सबमिट" है
roghayeh hosseini

33

आप setQuery()टेक्स्ट बॉक्स में टेक्स्ट को बदलने के लिए उपयोग कर सकते हैं ।

हालाँकि, setQuery()विधि एक खोज दृश्य की फ़ोकस स्थिति को ट्रिगर करती है, इसलिए इस विधि के लागू होने के बाद एक कीबोर्ड स्क्रीन पर दिखाई देगा।

इस समस्या को ठीक करने के लिए, बस इसे अनफोकस करने के लिए विधि के searchView.clearFocus()बाद कॉल करें setQuery()और कीबोर्ड स्क्रीन पर नहीं दिखाई देगा।

उदाहरण:

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

खोज लिखने के बाद से नहीं दिखाएं ।setIconified (गलत); प्रदर्शन ।
लोलो_हाउस

7

यदि आप चाहते हैं कि SearchViewकुछ पाठ के साथ आपका पूर्व-चित्र searchView.setQuery(text, false)बॉक्स से बाहर काम न करे। कारण जब SearchViewविस्तार होता है

searchView.onActionViewExpanded()

कहा जाता है जो searchView.setText("")हमारे द्वारा निर्धारित किसी भी पाठ को कॉल और साफ़ करता है।

समाधान एक विस्तृत श्रोता को सेट करना है और विस्तार होने के बाद पूर्व-पाठ पाठ सेट करना 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
}

6

इसी से मेरा काम बना है

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

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

1
सरल, त्वरित जीवन रक्षक समाधान!
eren130

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()

खोज दृश्य उपयोगकर्ता टैप x (बंद) के बाद वापस सिकुड़ नहीं जाएगा

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.