Android में "चुनें..." जैसे डिफ़ॉल्ट टेक्स्ट वाला स्पिनर बनाने का गाइड
यह ट्यूटोरियल दिखाता है कि कैसे ArrayAdapter और स्पिनर में पहला आइटम डिफ़ॉल्ट प्लेसहोल्डर के रूप में उपयोग करके "Select a player..." जैसा प्रारंभिक टेक्स्ट दिखाया जाए।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio में File → New Project चुनकर नया प्रोजेक्ट बनाएं।
चरण 2: लेआउट फ़ाइल में कोड जोड़ें
res/layout/activity_main.xml में:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:id="@+id/linearLayout"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Spinner Sample Program"
android:layout_gravity="center"
android:layout_marginTop="30dp"
android:textSize="16sp"/>
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_gravity="center">
</Spinner>
</LinearLayout>
चरण 3: MainActivity.java में कोड जोड़ें
src/MainActivity.java में:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
Spinner spinner;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner = findViewById(R.id.spinner);
List<String> footballPlayers = new ArrayList<>();
footballPlayers.add(0, "Select a player from the list");
footballPlayers.add("Cristian Ronaldo");
footballPlayers.add("Lionel Messi");
footballPlayers.add("Neymar Jr");
footballPlayers.add("Isco");
footballPlayers.add("Gareth Bale");
footballPlayers.add("Luis Suarez");
ArrayAdapter<String> arrayAdapter = new ArrayAdapter(this,
android.R.layout.simple_list_item_1, footballPlayers);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(arrayAdapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if (position == 0) {
// डिफ़ॉल्ट आइटम चुना गया - कुछ न करें
return;
}
String item = parent.getItemAtPosition(position).toString();
Toast.makeText(parent.getContext(), "Selected: " + item, Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) { }
});
}
}
मुख्य बिंदु
footballPlayers.add(0, "Select...")- इंडेक्स 0 पर डिफ़ॉल्ट टेक्स्ट डालेंposition == 0चेक करके डिफ़ॉल्ट चयन को अनदेखा करेंsetDropDownViewResourceड्रॉपडाउन दृश्य कस्टमाइज़ करता है
चरण 4: AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="app.com.sample">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
ऐप चलाएं
डिवाइस कनेक्ट करें, Run आइकन पर क्लिक करें, स्पिनर पर टैप करें और खिलाड़ी चुनकर टोस्ट देखें।
बेहतर UX के लिए टिप
डिफ़ॉल्ट आइटम को ग्रे कलर में दिखाने के लिए कस्टम एडाप्टर बनाएं जो getView() (चयनित दृश्य) और getDropDownView() (ड्रॉपडाउन आइटम) को अलग-अलग हैंडल करे।