दिलचस्प पोस्ट
हेडर और पादलेख फ़ाइलों को एकाधिक HTML पृष्ठों में शामिल करने के लिए बनाएं क्या आईओ-बाउंड ऑपरेशन के लिए मल्टीथ्रेडिंग का मतलब है? आईओएस: ऑटो लेआउट में मल्टी-लाइन यूआईएलबल क्या अजगर पुस्तकालय मुझे अनुमानित स्थान और समय क्षेत्र को एक आईपी पते बता सकते हैं? नियंत्रक के अंदर से नियंत्रक और क्रिया नाम प्राप्त करें? क्रोम ब्राउज़र के साथ वेबड्राइवर चलाने पर, संदेश प्राप्त हो रहा है, हालांकि ब्राउज़र ठीक से लॉन्च करता है, "केवल स्थानीय कनेक्शन की अनुमति है" MySQL: एक संग्रहीत प्रक्रिया के भीतर लेनदेन जावा: एआरएम्स जैसे PHP के शामिल होने के लिए फ़ंक्शन ()? Java.lang.ClassNotFoundException प्राप्त करना: org.apache.commons.logging.LogFactory अपवाद मैं डिवाइस प्रकार के आधार पर asp.net mvc दृश्य कैसे बदलूंगा? HttpClient और WebClient के बीच निर्णय करना जावा / सॉकेट के साथ एक सरल एचटीटीपी सर्वर? वाम-रैखिक और राइट-रैखिक ग्रामर्स सी ++ सीएमडी कमानों को कार्यान्वित करना Visualvm का उपयोग करते हुए मेमोरी लीक को कैसे ढूंढें

एंड्रॉइड: स्पिनर का संकेत

क्या किसी भी स्पिनर के लिए संकेत बनाने के लिए वैसे भी ऐसा संकेत है जो संपादन पाठ क्षेत्रों के लिए प्रदान किया गया है। मुझे पता है कि आप एक प्रॉम्प्ट का उपयोग कर सकते हैं जो आपको एक शीर्षक बार देता है, लेकिन फिर भी स्पिनर को छोड़कर जब तक आप स्पिनर पर क्लिक नहीं करते तब तक स्पिनर फील्ड रिक्त छोड़ देता है। वर्तमान में स्पिनर सरणी के पहले भाग के रूप में एक डमी फील्ड सेट करने का एक कच्चा तरीका है जो कि सवाल है और फिर अंत में एक जांच होनी चाहिए ताकि यह सुनिश्चित किया जा सके कि स्पिनर सवाल स्ट्रिंग के बराबर नहीं है। क्या ऐसा करने के लिए कोई क्लीनर / बेहतर तरीका है?

धन्यवाद!

Solutions Collecting From Web of "एंड्रॉइड: स्पिनर का संकेत"

यहां एक समाधान है जो संभवत: रवि व्यास कोड की तुलना में थोड़ा आसान है (प्रेरणा के लिए धन्यवाद!):

ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_dropdown_item) { @Override public View getView(int position, View convertView, ViewGroup parent) { View v = super.getView(position, convertView, parent); if (position == getCount()) { ((TextView)v.findViewById(android.R.id.text1)).setText(""); ((TextView)v.findViewById(android.R.id.text1)).setHint(getItem(getCount())); //"Hint to be displayed" } return v; } @Override public int getCount() { return super.getCount()-1; // you dont display last item. It is used as hint. } }; adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); adapter.add("Item 1"); adapter.add("Item 2"); adapter.add("Hint to be displayed"); spinner.setAdapter(adapter); spinner.setSelection(adapter.getCount()); //display hint 

आप अपना स्पिनर एडाप्टर सेट कर सकते हैं और GetView विधि को एक आइटम के बजाय संकेत दिखाने के लिए कर सकते हैं। मैंने गिथूब पर एक नमूना प्रोजेक्ट बनाया है, इसे यहाँ देखें

अपना स्पिनर एडाप्टर सेट करने से भी एक आसान तरीका यह है कि सिर्फ एक बटन का उपयोग करें और इसे स्पिनर ऑब्जेक्ट की तरह शैली के समान बनाएं

 android:background="@android:drawable/btn_dropdown" 

फिर एक एकल आइटम-चयन संवाद को खोलने के लिए बटन के ऑनक्लिक ईवेंट को सेटअप करें। तब आप बटन के पाठ के साथ जो चाहें कर सकते हैं।

यह थोड़ी देर के लिए इस से निपटने का मेरा पसंदीदा तरीका रहा है। आशा है कि यह किसी को मदद करता है

संपादित करें: मैं हाल ही में इसे फिर से खेल रहा हूं (और किसी ने मुझे कुछ समय पहले एक उदाहरण पोस्ट करने के लिए कहा)। यदि आप होलो थीम का उपयोग कर रहे हैं तो यह रणनीति थोड़ा अलग दिखाई देगी। हालांकि, अगर आप थीम जैसे अन्य विषयों का उपयोग कर रहे हैं। ब्लैक, यह समान दिखाई देगा।

इसे प्रदर्शित करने के लिए, मैंने एक साधारण ऐप बनाया, जिसमें मेरे कस्टम बटन स्पिनर के साथ एक नियमित स्पिनर भी था मैंने इसे एक गीटहब रेपो में फेंक दिया, लेकिन यह है कि गतिविधि क्या दिखती है:

 package com.stevebergamini.spinnerbutton; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Spinner; public class MainActivity extends Activity { Spinner spinner1; Button button1; AlertDialog ad; String[] countries; int selected = -1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); spinner1 = (Spinner) findViewById(R.id.spinner1); button1 = (Button) findViewById(R.id.button1); countries = getResources().getStringArray(R.array.country_names); // You can also use an adapter for the allert dialog if you'd like // ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, countries); ad = new AlertDialog.Builder(MainActivity.this).setSingleChoiceItems(countries, selected, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { button1.setText(countries[which]); selected = which; ad.dismiss(); }}).setTitle(R.string.select_country).create(); button1.setOnClickListener( new OnClickListener(){ @Override public void onClick(View v) { ad.getListView().setSelection(selected); ad.show(); }}); } }