package com.asha.md360player4android;
import android.app.Activity;
import android.util.SparseArray;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
/**
* Created by hzqiujiadi on 16/6/24.
* hzqiujiadi ashqalcn@gmail.com
*/
public class SpinnerHelper {
private Activity activity;
private SparseArray<String> data;
private ClickHandler clickHandler;
private int defaultKey;
public interface ClickHandler{
void onSpinnerClicked(int index, int key, String value);
}
public SpinnerHelper(Activity activity) {
this.activity = activity;
}
public SpinnerHelper setDefault(int key){
defaultKey = key;
return this;
}
public SpinnerHelper setData(SparseArray<String> data){
this.data = data;
return this;
}
public SpinnerHelper setClickHandler(ClickHandler clickHandler){
this.clickHandler = clickHandler;
return this;
}
public void init(int id){
if (data == null){
return;
}
Spinner spinner = (Spinner) activity.findViewById(id);
ArrayAdapter<String> adapter = new ArrayAdapter<>(activity, R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
for (int i = 0; i < data.size(); i++){
String value = data.valueAt(i);
adapter.add(value);
}
spinner.setAdapter(adapter);
int index = data.indexOfKey(defaultKey);
index = index == -1 ? 0 : index;
spinner.setSelection(index);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
int key = data.keyAt(position);
String value = data.valueAt(position);
if (clickHandler != null){
clickHandler.onSpinnerClicked(position,key,value);
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
public static SpinnerHelper with(Activity activity){
return new SpinnerHelper(activity);
}
}