Spinner, AlertDialog

Spinner એ dropdown છે જે તમે adapter દ્વારા આપેલી યાદીમાંથી એક પસંદગી દેખાડે છે (પસંદગી getSelectedItem થી વાંચો), અને AlertDialog એ AlertDialog.Builder થી બનતી અટકાવતી popup છે જે મથાળા, સંદેશા, અને OK/Cancel નાં બટન સાથે પ્રશ્ન પૂછે છે.

9 min read · 9 cards · 2 checks

Read in: English · हिन्दी · ગુજરાતી


Theory

લાંબી યાદી, પછી છેલ્લી ચકાસણી

FestConnect ને હજી બે વસ્તુ જોઈએ: T-shirt નું માપ પસંદ કરનારું (S, M, L, XL, XXL) જે પાંચ radio નાં બટનથી પડદો ખાઈ ન જાય, અને છેલ્લે 'નોંધણીની ખાતરી?' ની પેટી જેનો જવાબ student એ submit કરતાં પહેલાં આપવો પડે.

એ બે widgets છે જે ઘણી વાર સાથે દેખાય છે: Spinner (સઘન dropdown) અને AlertDialog (અટકાવતી હા/ના ની popup). એક યાદીમાંથી પસંદગી લે છે; બીજું અટકીને પ્રશ્ન પૂછે છે. એમને જોડ તરીકે શીખો.

Theory

નીચે ઊતરતું menu અને સલામતીનો દરવાજો

Spinner એ સળિયા પર લટકતું restaurant નું menu છે: એ વળેલું રહીને તમારી હાલની પસંદગી દેખાડે છે, અને દબાવતાં આખી યાદી ઉઘાડવા ખૂલી જાય છે. AlertDialog એ સલામતીનો દરવાજો છે: એ પરસાળ રોકે છે અને તમે 'આગળ વધું?' નો હા કે ના જવાબ ન આપો ત્યાં સુધી પસાર થવા દેતો નથી. એક સુઘડ પસંદ કરનારું છે; બીજું ઇરાદાપૂર્વકનું અટકો-અને-નક્કી-કરો છે.

Theory

પહેલાં Spinner, પછી AlertDialog

Spinner (dropdown):

  • એને ArrayAdapter થી ભરો (strings ના array માંથી).
  • setOnItemSelectedListener થી પ્રતિભાવ આપો.
  • getSelectedItem() (કે getSelectedItemPosition()) થી વાંચો.

AlertDialog (અટકાવતો પ્રશ્ન):

  • new AlertDialog.Builder(this) થી બાંધો.
  • setTitle, setMessage, setPositiveButton("OK", ...), setNegativeButton("Cancel", ...).
  • create() પછી show() થી પૂરું કરો (કે સીધું .show()).

Toast થી વિપરીત, dialog વાપરનાર જવાબ ન આપે ત્યાં સુધી અટકાવે છે.

Practical

માપનું Spinner, પછી ખાતરી

// Spinner: feed it a list with an adapter
Spinner size = findViewById(R.id.size);
String[] sizes = {"S", "M", "L", "XL", "XXL"};
size.setAdapter(new ArrayAdapter<>(this,
        android.R.layout.simple_spinner_item, sizes));

register.setOnClickListener(v -> {
    String picked = size.getSelectedItem().toString();

    // AlertDialog: modal confirm before submitting
    new AlertDialog.Builder(this)
        .setTitle("Confirm")
        .setMessage("Register with size " + picked + "?")
        .setPositiveButton("Yes", (dialog, which) ->
            Toast.makeText(this, "Registered!", Toast.LENGTH_SHORT).show())
        .setNegativeButton("Cancel", null)
        .show();
});

Think first

Toast કે AlertDialog?

FestConnect નોંધણીની ખાતરી Toast ('Registered!') થી કે AlertDialog ('Register with size L? Yes/No') થી કરી શકે. વાપરનારે સક્રિય રીતે સંમત થવું પડે એવી છેલ્લી ખાતરી માટે કયું બંધબેસે છે, અને અહીં બીજું કેમ ખોટું છે?

Show the answer

AlertDialog, કારણ કે એ અટકાવતું છે: એ રોકે છે અને વાપરનાર સક્રિય રીતે હા કે ના પસંદ કરે એની રાહ જુએ છે, અને છેલ્લી ખાતરીને બરાબર એ જ જોઈએ. આ પગલા માટે Toast ખોટું છે કારણ કે એ ફક્ત ચમકીને ઓસરી જાય છે, બટન વગર, વાપરનાર સંમત કે અસંમત થઈ શકતો નથી, અને એ કદાચ સાવ ચૂકી પણ જાય. નિષ્ક્રિય 'થઈ ગયું' ના પ્રતિભાવ માટે Toast વાપરો (એ ખાતરી આપે એ પછી), અને ખરેખરો નિર્ણય જોઈએ ત્યારે AlertDialog.

Quiz

Spinner દબાવતાં એના dropdown માં કશું દેખાતું નથી. સૌથી સંભવિત ખૂટતું પગલું કયું છે?

  1. વસ્તુઓની યાદી પૂરી પાડવા કોઈ adapter ગોઠવાયું નથી
  2. એને RadioGroup નું આવરણ જોઈએ
  3. AlertDialog બનાવાયું નહોતું
  4. getSelectedItem() ક્યારેય બોલાવાયું નહોતું
Show the answer

વસ્તુઓની યાદી પૂરી પાડવા કોઈ adapter ગોઠવાયું નથી

Spinner ત્યાં સુધી ખાલી રહે છે જ્યાં સુધી તમે એને adapter દ્વારા data ન આપો (દા.ત. માપનું ArrayAdapter); adapter નહીં, વસ્તુઓ નહીં (A). Spinners ને RadioGroups માં વીંટવામાં આવતાં નથી (B). AlertDialog એ અલગ widget છે અને Spinner ભરવા સાથે અસંબંધિત છે (C). getSelectedItem() હાલની પસંદગી વાંચે છે, એ યાદી ભરતું નથી (D). Spinner ને એના વિકલ્પો આપવા હંમેશા adapter ગોઠવો.

Watch out

Spinner અને dialog ના ફાંદા

1. Adapter વગરનું Spinner: એમાં કશું દેખાતું નથી. એને ArrayAdapter થી ભરો.

2. AlertDialog બાંધીને દેખાડવાનું ભૂલી જવું: Toast ની જેમ, તમારે show() બોલાવવું જ પડે (create() પછી, કે સીધું). show() નહીં, તો dialog નહીં.

3. નિર્ણય જોઈએ ત્યાં Toast વાપરવું: Toast હા/ના પકડી શકતું નથી. ખરેખરી પસંદગી માટે positive/negative બટન વાળું AlertDialog સાચું છે.

Theory

આગળ: છેલ્લું widget, હોશિયાર લખાણ

એક widget બાકી છે: AutoCompleteTextView, એટલે કે લખાણનું એવું ખાનું જે તમે લખો તેમ મળતાં સૂચનો આપે છે (FestConnect ના college ના ખાના માટે સરસ), અને એની સાથે TextWatcher જે દરેક કળ પર પ્રતિભાવ આપે છે. એ Spinner ના adapter ના વિચારને જીવતાં લખાણનાં events સાથે જોડે છે, જે એકમને બાંધતું બંધબેસતું સમાપન છે.

Summary

Key takeaways

  • Spinner એ dropdown છે; એને ArrayAdapter થી ભરો અને પસંદગી getSelectedItem() થી વાંચો.
  • લાંબી યાદીમાંથી એક પસંદગી માટે Spinner વાપરો (થોડા વિકલ્પોને RadioButtons બંધબેસે છે).
  • AlertDialog એ AlertDialog.Builder થી બંધાતો અટકાવતો પ્રશ્ન છે: setTitle, setMessage, setPositiveButton/setNegativeButton, પછી show().
  • AlertDialog જવાબ ન અપાય ત્યાં સુધી અટકાવે છે (ખરેખરો નિર્ણય); Toast ફક્ત ચમકે છે (નિષ્ક્રિય પ્રતિભાવ).
  • Spinner ને adapter જોઈએ, અને AlertDialog ને show() જોઈએ, નહીં તો કશું દેખાતું નથી.
  • Memory hook: નીચે ઊતરતું menu (Spinner) અને સલામતીનો દરવાજો (AlertDialog).

Study this properly

This page is the lesson to read. In Gri-Learn the same topic is a graded deck: the self-checks are scored and your weak topics are tracked. Free to start.

Start this topic

Already have an account? Sign in

More from Other Android Widgets (UI)

Gri-Learn · syllabus-mapped B.C.A. lessons in English, Hindi and Gujarati

Spinner, AlertDialog · Mobile Application Development - 1 (option B) · Gri-Learn