Advertisement
Guest User

Android Spinner with Hashmap

a guest
Jul 8th, 2013
1,712
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.16 KB | None | 0 0
  1. package com.example.androidtest;
  2.  
  3. import java.util.HashMap;
  4.  
  5. import android.os.Bundle;
  6. import android.view.View;
  7. import android.widget.AdapterView;
  8. import android.widget.ArrayAdapter;
  9. import android.widget.Spinner;
  10. import android.widget.Toast;
  11. import android.app.Activity;
  12.  
  13. public class MainActivity extends Activity {
  14.     private String[]            arrMuppetNames  = {"Kermit","Gonzo","Fuzzy","Animal"};
  15.     HashMap<String, Integer>    hashMuppets     = new HashMap<String, Integer>();
  16.    
  17.     @Override
  18.     protected void onCreate(Bundle savedInstanceState) {
  19.         super.onCreate(savedInstanceState);
  20.         setContentView(R.layout.activity_main);
  21.        
  22.         //Setup spinner with muppets
  23.         setSpinnerContent(arrMuppetNames);
  24.         //setup hashmap
  25.         buildHashMap(arrMuppetNames);
  26.        
  27.         //add spinner listener
  28.         Spinner my_spinner = (Spinner) findViewById(R.id.muppets_spinner);
  29.         my_spinner.setOnItemSelectedListener(spinnerListener);
  30.     }
  31.    
  32.    
  33.     private void buildHashMap(String arrMuppets[]){
  34.         int intVal              = 0;
  35.         String strValue         = "";
  36.        
  37.         //loop through array and create key value pair to put into hashmap
  38.         for(int i=0; i < arrMuppets.length; i++){
  39.             strValue            = arrMuppets[i].toString();
  40.            
  41.             if(strValue == "Kermit"){
  42.                 intVal  = 1;
  43.             }else if(strValue == "Gonzo"){
  44.                 intVal  = 2;
  45.             }else if(strValue == "Fuzzy"){
  46.                 intVal  = 3;
  47.             }else if(strValue == "Animal"){
  48.                 intVal  = 4;
  49.             }else{
  50.                 intVal  = 0;
  51.             }
  52.        
  53.             //put value and key into hashmap
  54.             hashMuppets.put(strValue,intVal);
  55.         }
  56.     }
  57.    
  58.  
  59.     private void setSpinnerContent(String arrMuppets[]){
  60.         Spinner spinner         = (Spinner) findViewById(R.id.muppets_spinner);
  61.         String arrNewArray[]    = new String[arrMuppets.length + 1];
  62.        
  63.         //Add please select to spinner
  64.         arrNewArray[0]  = this.getString(R.string.select_please);
  65.         for(int i=0; i < arrMuppets.length; i++){
  66.             arrNewArray[i+1]    = arrMuppets[i];
  67.         }
  68.        
  69.         //Application of the Array to the Spinner
  70.         ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(
  71.                 this,  
  72.                 android.R.layout.simple_spinner_item,
  73.                 arrNewArray
  74.         );
  75.         spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  76.         spinner.setAdapter(spinnerArrayAdapter);
  77.     }
  78.  
  79.    
  80.     private Spinner.OnItemSelectedListener spinnerListener = new Spinner.OnItemSelectedListener(){
  81.         @Override
  82.         public void onItemSelected(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
  83.             Spinner     my_spinner  = (Spinner) findViewById(R.id.muppets_spinner);
  84.            
  85.             //arg 3 is index, if 0 it means they clicked "--please select--"
  86.             if(arg3 != 0){
  87.                 //get selected content
  88.                 String  strName     = my_spinner.getSelectedItem().toString();
  89.                 //use hasmap to translate that into a corresponding id.
  90.                 int     intCatID    = hashMuppets.get(strName);
  91.                
  92.                 Toast.makeText(getApplicationContext(), String.valueOf(intCatID), Toast.LENGTH_SHORT).show();
  93.             }
  94.         }
  95.         @Override
  96.         public void onNothingSelected(AdapterView<?> arg0) {
  97.             //this is what happens if we select nothing.
  98.             return;
  99.         }
  100.     };
  101.    
  102.    
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement