Created
November 23, 2018 13:44
-
-
Save MamdouhAlShamy/a99f0a94de3f627cda92e9b89e67ba14 to your computer and use it in GitHub Desktop.
Working Spinner
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.innozones.mms.liveartists.MyServices; | |
import android.os.Bundle; | |
import android.support.annotation.NonNull; | |
import android.support.annotation.Nullable; | |
import android.support.design.widget.TextInputLayout; | |
import android.support.v4.app.DialogFragment; | |
import android.util.Log; | |
import android.view.LayoutInflater; | |
import android.view.View; | |
import android.view.ViewGroup; | |
import android.widget.AdapterView; | |
import android.widget.ArrayAdapter; | |
import android.widget.Button; | |
import android.widget.Spinner; | |
import android.widget.AdapterView.OnItemSelectedListener; | |
import com.innozones.mms.liveartists.R; | |
import com.innozones.mms.liveartists.data.model.serviceTypes.ServiceType; | |
import com.innozones.mms.liveartists.data.model.serviceTypes.ServiceTypesResponse; | |
import com.innozones.mms.liveartists.util.UrlBuilder; | |
import com.koushikdutta.async.future.FutureCallback; | |
import com.koushikdutta.ion.Ion; | |
import java.util.ArrayList; | |
import java.util.List; | |
import butterknife.BindView; | |
import butterknife.ButterKnife; | |
import butterknife.OnClick; | |
import butterknife.Unbinder; | |
public class AddServiceDialogFragment extends DialogFragment implements OnItemSelectedListener { | |
private final String TAG = this.getClass().getSimpleName(); | |
@BindView(R.id.add_service_name_edit_text) | |
TextInputLayout addServiceNameEditText; | |
@BindView(R.id.add_service_type_spinner) | |
Spinner addServiceTypeSpinner; | |
@BindView(R.id.add_service_price_edti_text) | |
TextInputLayout addServicePriceEdtiText; | |
@BindView(R.id.add_service_button) | |
Button addServiceButton; | |
Unbinder unbinder; | |
List<String> spinnerArray = new ArrayList<>(); | |
@Override | |
public void onCreate(@Nullable Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
} | |
@Nullable | |
@Override | |
public View onCreateView(@NonNull LayoutInflater inflater, | |
@Nullable ViewGroup container, | |
@Nullable Bundle savedInstanceState) { | |
View v = inflater.inflate(R.layout.fragment_add_service_dialog, container, false); | |
unbinder = ButterKnife.bind(this, v); | |
spinnerArray.add("Select"); | |
fillSpinnerWithServiceTypes(); | |
addServiceTypeSpinner.setOnItemSelectedListener(this); | |
return v; | |
} | |
@Override | |
public void onItemSelected(AdapterView<?> parent, View view, int i, long l) { | |
Log.d(TAG, "onItemSelected: " + parent.getItemAtPosition(i).toString()); | |
addServiceTypeSpinner.setSelection(i); | |
} | |
@Override | |
public void onNothingSelected(AdapterView<?> adapterView) { | |
Log.d(TAG, "onNothingSelected: NothingSelected"); | |
} | |
private void fillSpinnerWithServiceTypes() { | |
getServiceTypes(); | |
ArrayAdapter<String> adapter = | |
new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, spinnerArray); | |
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); | |
addServiceTypeSpinner.setAdapter(adapter); | |
} | |
@NonNull | |
private List<String> getServiceTypes() { | |
Log.d(TAG, "Request to get Service Types"); | |
Ion.with(getActivity()) | |
.load(UrlBuilder.getServiceTypesUrl()) | |
.as(ServiceTypesResponse.class) | |
.setCallback(new FutureCallback<ServiceTypesResponse>() { | |
@Override | |
public void onCompleted(Exception e, ServiceTypesResponse result) { | |
for(ServiceType serviceType: result.getServiceType()) | |
spinnerArray.add(serviceType.getTitle()); | |
} | |
}); | |
return spinnerArray; | |
} | |
@Override | |
public void onDestroyView() { | |
super.onDestroyView(); | |
unbinder.unbind(); | |
} | |
@OnClick(R.id.add_service_button) | |
public void onViewClicked() { | |
// TODO network call | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment