Problem z poprawnym przekazaniem zmiennych w konstruktorze

0

Czesc,
Mam petle. Petla generuje zmienna int przy kazdej interacji zmienia sie ta liczba. W petli rowniez jest tworzenie obiektu i przeslanie w konstruktorze tej zmiennej.
Przykladowy wynik:
wygenerowana zmienna w petli:
2
12
5
7
3
Odebrana zmienna w naszym obiekcie:
3
3
3
3
3

A chcialbym zeby wyslane=odebrane, podam kod, moze uda wam sie znalezc blad.

 if(response.isSuccessful()) {
                markerList=response.body();
                int liczba  = markerList.size();
                for(int i=0;i<liczba;i++){

                    int  activityId = markerList.get(i).getActivity_id();
                    String login = markerList.get(i).getLogin();
                    String kindOfActivity = markerList.get(i).getKind_of_activity();
                    String descriptionOfActivity = markerList.get(i).getDescription_of_activity();
                    String markerAdres = markerList.get(i).getAddress();
                    String startDate=markerList.get(i).getStart_date();
                    String startHour=markerList.get(i).getStart_hour();
                    Double lat = markerList.get(i).getLat();
                    Double lng = markerList.get(i).getLng();
                    LatLng latLng = new LatLng(lat, lng);



                **     your_variable=getDrawableId(kindOfActivity);**



                     offsetItem = new MyItem(latLng, login, "Rodzaj: "+ kindOfActivity
                            +System.lineSeparator()+"Opis: " +descriptionOfActivity
                            +System.lineSeparator()+ "Adres Startu: " + markerAdres
                            +System.lineSeparator()+ "Data Startu: " + startDate
                            +System.lineSeparator()+ "Godzina Startu: " + startHour, activityId);



                    mClusterManager.addItem(offsetItem);
                   

                   ** CustomClusterRenderer renderer = new CustomClusterRenderer(getBaseContext(), mMap, mClusterManager,your_variable);
                    mClusterManager.setRenderer(renderer);**

                    Log.i("sad323tr76ikessd5s", "id: " + your_variable);

                }
                 mClusterManager.cluster();

                Log.i("start_activity_sent2", "post submitted to API." + response.body());


            }

public class CustomClusterRenderer extends DefaultClusterRenderer<MyItem> {

    private final Context mContext;
    private int iconId;

    public CustomClusterRenderer(Context context, GoogleMap map,
                                 ClusterManager<MyItem> clusterManager, int icon) {
        super(context, map, clusterManager);
        iconId=icon;
        mContext = context;
    }



    @Override protected void onBeforeClusterItemRendered(MyItem item,
                                                         MarkerOptions markerOptions) {

        Log.i("asdgw3534ik56sds12", "id " + iconId);

        markerOptions.icon(BitmapDescriptorFactory.fromResource(iconId));



    }
}

chodzi o ta zmienna 'your_variable'

0

jakiego typu jest your_variable?
co zwraca getDrawableId(kindOfActivity)?
nie ma tam jakiegoś autoboxingu/unboxingu?

wpisz sobie na konsoli wartości zmiennych w kilku miejscach - System.out.println();

0

ypur_variable to int
zwraca id obrazka w folderze drawable, na podstawie String kindOfActivity.
Wlasnie wypisalem sobie zmienne w logcat'cie i sytuacja jest taka jak przedstawilem, w petli wyswietlaja sie poprawne, po przekazaniu wyswietla sie ostatnia liczba z petli w ilosci powtorzen petli.

autoboxing/unboxing? co to takiego?

0

u mnie najczęściej problem pojawiał się jak używałem Double lub Integer zamiast double / int.
Kompilator zamienia klasy prymitywne w opakowujące (obiektowe) i odwrotnie automatycznie - to jest autoboxing/unboxing.

poczytaj

0

Zmienna your_variable jest poprawnie przekazana. Problem jest raczej z tym miejscem, gdzie logujesz te niby odebrane:

3
3
3
3
3

Skąd się te napisy biorą, gdzie jest pętla to wyświetlająca?
Możliwe, że masz tylko jeden renderer - na co zapis mClusterManager.setRenderer(renderer); nawet wskazuje.

1 użytkowników online, w tym zalogowanych: 0, gości: 1