2010-03-08 24 views
9

मैं एंड्रॉइड के लिए बहुत नया हूं। मैं अपने आवेदन में 2 स्पिनरों का उपयोग करना चाहता हूं, एक देश की सूची दिखाता है, जब किसी देश का चयन किया जाता है तो दूसरे स्पिनर को उस देश के शहरों की सूची दिखानी चाहिए। जब शहर का चयन किया जाता है तो कुछ क्रियाएं की जाती हैं। कृपया मुझे कुछ नमूना कोड के साथ मदद करें। प्रत्याशा में धन्यवादस्पिनर का उपयोग कैसे करें

+1

जांचें [यह] (http://stackoverflow.com/questions/1337424/android-spinner-get-the-selected-item-change-event) ब्लॉग, यह आपको कुछ अच्छा बताएगा। मैं एक ही अवधारणा पर भी काम कर रहा हूं, जब मैं एक पूर्ण समाधान प्राप्त करता हूं, तो मैं यहां जवाब डालूंगा। नमस्ते, हप्स। – Harpreet

उत्तर

9

यहाँ स्पिनर के लिए कुछ है कि हम क्या wrt spinner2 लिए विकल्प जोड़ने के लिए उपयोग कर सकते हैं है 1.

public class Activity extends Activity implements View.OnClickListener 
{ 
    private Spinner spinner0, spinner1, spinner2, spinner3; 
    private Button submit, cancel; 

    private String country[], state[], city[], area[]; 

    Australia aus = new Australia(); 

    Object object; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     spinner0 = (Spinner)findViewById(R.id.spinnerCountry); 
     spinner1 = (Spinner)findViewById(R.id.spinnerQ1); 
     spinner2 = (Spinner)findViewById(R.id.spinnerQ2); 
     spinner3 = (Spinner)findViewById(R.id.spinnerQ3); 

     submit = (Button)findViewById(R.id.btnSubmit); 
     cancel = (Button)findViewById(R.id.btnCancel); 

     submit.setOnClickListener(this); 
     cancel.setOnClickListener(this); 

     country = new String[] {"Select Country", "Australia", "USA", "UK", "New Zealand", "EU", "Europe", "China", "Hong Kong", 
           "India", "Malaysia", "Canada", "International", "Asia", "Africa"}; 


     ArrayAdapter<String> adapter0 = new ArrayAdapter<String>(Activity.this, android.R.layout.simple_spinner_item, country); 
     adapter0.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line); 
     spinner0.setAdapter(adapter0); 
     Log.i("AAA","spinner0"); 

     spinner0.setOnItemSelectedListener(new OnItemSelectedListener() 
     {   
      @Override 
      public void onItemSelected(AdapterView<?> arg0, View view1, int pos, long id) 
      { 
       Log.i("AAA","OnItemSelected"); 
       int loc; 
       loc = pos; 

       switch (loc) 
       { 
       case 1: 

        state = aus.getState(); 
        object = aus; 

        Log.i("AAA","ArrayAdapter1");     
        ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(Activity.this, android.R.layout.simple_spinner_item, state); 
        adapter1.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line); 
        spinner1.setAdapter(adapter1);   Log.i("AAA","spinner1"); 
        break; 

       default: 
        Log.i("AAA","default 0"); 
        break; 
       }        
      }  

      @Override 
      public void onNothingSelected(AdapterView<?> arg1) 
      { 
       Log.i("AAA","Nothing S0"); 

      } 
     }); 

     spinner1.setOnItemSelectedListener(new OnItemSelectedListener() 
     { 
      @Override 
      public void onItemSelected(AdapterView<?> arg0, View view1, int pos, long id) 
      { 
       Log.i("AAA","OnItemSelected S1"); 
       int loc = pos; 
       switch(loc) 
       { 
        case 1: 
         Log.i("AAA","Australia"); 
         if(object.equals(aus)) 
         { 
          city = aus.getType(loc); 
         } 
         else 
         { 
          break; 
         } 


         ArrayAdapter<String> adapter = new ArrayAdapter<String>(Activity.this, android.R.layout.simple_spinner_item, city); 
         adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line); 
         spinner2.setAdapter(adapter);   Log.i("AAA","spinner2"); 
         break; 

        default: 
          Log.i("AAA", "default 1"); 
         break; 

       } 
      } 
      @Override 
      public void onNothingSelected(AdapterView<?> arg0) 
      { 
       Log.i("AAA","Nothing S1");    
      } 

     }); 

     spinner2.setOnItemSelectedListener(new OnItemSelectedListener() 
     { 

     @Override 
     public void onItemSelected(AdapterView<?> arg0, View arg1, int pos, long id) 
     { 
      int loc = pos; 
      switch (loc) 
      { 
      case 1: 
       if(object.equals(aus)) 
       { 
        area = aus.getTitle(loc); 
       } 

       ArrayAdapter<String> adapter = new ArrayAdapter<String>(Activity.this, android.R.layout.simple_spinner_item, area); 
       adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line); 
       spinner3.setAdapter(adapter);   Log.i("","spinner3");    
       break; 

      default: 
       break; 
      } 

     } 

     @Override 
     public void onNothingSelected(AdapterView<?> arg0) 
     { 
      // TODO Auto-generated method stub   
     } 
     }); 

    }// on-create 


    @Override 
    public void onClick(View v) 
    { 
     switch (v.getId()) 
     { 
     case R.id.btnSubmit: 

      break; 

     case R.id.btnCancel: 
      finish(); 
      break; 

     default: 
      break; 
     }  
    } 
} 

आप तो यह उपयोगी पाएं, फिर इसे वोट दें, ताकि दूसरों को आसानी से एक अच्छा जवाब मिल सके।

प्रत्येक देश के लिए, आपको केवल राज्य, शहर & क्षेत्र जोड़ने के लिए इसके लिए एक कक्षा बनाना है। ताकि यह एकल पृष्ठ पर एकल पर जाल न बन जाए।

मज़े करें।

सम्मान,

हप्स।

3

यहाँ एक नमूना कोड जो स्पिनर और की गई कार्रवाई के उपयोग को दर्शाया गया है जब स्पिनर आइटम

import android.os.Bundle; 
import android.app.Activity; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.Spinner; 
import android.widget.AdapterView.OnItemSelectedListener; 

public class MainActivity extends Activity { 

    Spinner spin; 
    String spin_val; 
    String[] gender = { "Male", "Female" };//array of strings used to populate the spinner 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main);//setting layout 
     spin = (Spinner) findViewById(R.id.spinner_id);//fetching view's id 
     //Register a callback to be invoked when an item in this AdapterView has been selected 
     spin.setOnItemSelectedListener(new OnItemSelectedListener() { 

      @Override 
      public void onItemSelected(AdapterView<?> arg0, View arg1, 
        int position, long id) { 
       // TODO Auto-generated method stub 
       spin_val = gender[position];//saving the value selected 


      } 

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 
       // TODO Auto-generated method stub 

      } 

     }); 
     //setting array adaptors to spinners 
     //ArrayAdapter is a BaseAdapter that is backed by an array of arbitrary objects 
     ArrayAdapter<String> spin_adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item, gender); 

     // setting adapteers to spinners 
     spin.setAdapter(spin_adapter); 
    } 


} 

चयन किया जाता है स्पिनर को मानों की सूची जोड़ने के लिए, आप तो अपने गतिविधि में एक SpinnerAdapter निर्दिष्ट करने की आवश्यकता है , जो एडाप्टर वर्ग को बढ़ाता है .. एक स्पिनर एडाप्टर दो अलग-अलग विचारों को परिभाषित करने की अनुमति देता है: एक जो स्पिनर में डेटा दिखाता है और एक जो स्पिनर दबाए जाने पर ड्रॉप डाउन सूची में डेटा दिखाता है। आप & भी डाउनलोड कर सकते हैं बेहतर समझने के लिए पूर्ण spinner_demo उदाहरण परियोजना।

संबंधित मुद्दे