(FRONT) FRONT (2025)

Return Custom Dropdownlist with default value based on Spinner

   1:  package com.voipplus.mmsclient.customControls;
   2:  
   3:  import android.content.Context;
   4:  import android.content.res.TypedArray;
   5:  import android.util.AttributeSet;
   6:  import android.view.LayoutInflater;
   7:  import android.view.View;
   8:  import android.view.ViewGroup;
   9:  import android.widget.AdapterView;
  10:  import android.widget.ArrayAdapter;
  11:  import android.widget.TextView;
  12:  
  13:  import androidx.appcompat.widget.AppCompatSpinner;
  14:  
  15:  import com.voipplus.mmsclient.R;
  16:  
  17:  public class SpinnerOpen extends AppCompatSpinner {
  18:  
  19:      private String defaultSelectionValue;
  20:  
  21:      public SpinnerOpen(Context context) {
  22:          super(context);
  23:      }
  24:  
  25:      public SpinnerOpen(Context context, AttributeSet attrs) {
  26:          super(context, attrs);
  27:  
  28:          TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.DefaultSpinner);
  29:          defaultSelectionValue = typedArray.getString(R.styleable.DefaultSpinner_defaultSelection);
  30:          typedArray.recycle();
  31:  
  32:          setOnItemSelectedListener(new OnItemSelectedListener() {@Override
  33:          public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
  34:              // Do nothing here, we only need to set the default selection
  35:          }
  36:  
  37:              @Override
  38:              public void onNothingSelected(AdapterView<?> parent) {
  39:                  // Do nothing here
  40:              }
  41:          });
  42:      }
  43:  
  44:      @Override
  45:      protected void onAttachedToWindow() {
  46:          super.onAttachedToWindow();
  47:          setDefaultSelection();
  48:      }
  49:  
  50:      private void setDefaultSelection() {
  51:          if (defaultSelectionValue != null) {
  52:              Object adapter = getAdapter();
  53:              if (adapter != null) {
  54:                  for (int i = 0; i < getAdapter().getCount(); i++) {
  55:                      Object item = getAdapter().getItem(i);
  56:                      if (defaultSelectionValue.equals(item)) {
  57:                          setSelection(i);
  58:                          break;
  59:                      }
  60:                  }
  61:              }
  62:          }
  63:      }
  64:  
  65:      public static ArrayAdapter<CharSequence> createGenericSpinnerAdapter(Context context, String[] options) {
  66:          return new ArrayAdapter<CharSequence>(context, R.layout.item_spinner, options) {
  67:              @Override
  68:              public View getView(int position, View convertView, ViewGroup parent) {
  69:                  return getCustomView(position, convertView, parent);
  70:              }
  71:  
  72:              @Override
  73:              public View getDropDownView(int position, View convertView, ViewGroup parent) {
  74:                  return getCustomView(position, convertView, parent);
  75:              }
  76:  
  77:              private View getCustomView(int position, View convertView, ViewGroup parent) {
  78:                  View view = convertView;
  79:                  if (view == null) {
  80:                      LayoutInflater inflater = LayoutInflater.from(getContext());
  81:                      view = inflater.inflate(R.layout.item_spinner, parent, false);
  82:                  }
  83:                  TextView textView = view.findViewById(android.R.id.text1);
  84:                  textView.setText(getItem(position));
  85:                  textView.setTag(getItem(position));
  86:                  return view;
  87:              }
  88:          };
  89:      }
  90:  }
  91:  

Return




AndroidMosaic context:



Comments ( )
Link to this page: http://www.vb-net.com/AndroidMosaic/SpinnerOpen.htm
< THANKS ME>