Skip to content

Instantly share code, notes, and snippets.

@MamdouhAlShamy
Created November 23, 2018 13:50
Show Gist options
  • Save MamdouhAlShamy/81b39067a300e2dd1a648e0b01fe35d5 to your computer and use it in GitHub Desktop.
Save MamdouhAlShamy/81b39067a300e2dd1a648e0b01fe35d5 to your computer and use it in GitHub Desktop.
Not Working Spinner
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);
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() {
spinnerArray = 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() {
final List<String> spinnerArrayX = new ArrayList<>();
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())
spinnerArrayX.add(serviceType.getTitle());
}
});
return spinnerArrayX;
}
@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