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
|
|