Это не работает , ;(

не могу найти решение для этого. Я знаю, что это можно спросить раньше. Но это действительно отличается от других вопросов.

Я пытаюсь реализовать один спиннер на стопку карт. У меня есть один набор карт, каждая карта содержит несколько заданий. В одной моей карточке содержится один счетчик.

Я успешно создал счетчик, и элементы счетчика генерируются только из базы данных. Пункты прядильщика показываются без каких-либо сбоев. Вот прядильщик, чтобы спросить пол. То есть мужчина и женщина. мой список[MALE, FEMALE] Спиннер показывает сначала самца, потом самку. все работает нормально.

Вот моя проблема. Если выбрать женский. Спиннер должен показать этот предмет. Но это всегда показывает мужской.

Ниже приведен код

 _listSpinner=(Spinner)convertView.findViewById(R.id.listSpinner);
                        ArrayList<HashMap<String, String>> TempOptionArrays=new  ArrayList<HashMap<String, String>>();
                        TempOptionArrays=db.getOptins(QuestionId,taskIdBundle);
                        for (int i = 0; i < TempOptionArrays.size(); i++)  {
                            SpinnerOptions.add(TempOptionArrays.get(i).get(Constants.ANSWER_SUGGESTION_TEXT_FIELD_COMMON));
                        }
                        Log.e("SpinnerOptions--",SpinnerOptions.toString());

                        Spinner spinner = (Spinner) convertView.findViewById(R.id.listSpinner);
                        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, SpinnerOptions);
                        adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
                        spinner.setAdapter(adapter);

Где я делаю ошибку?

Реализованные методы слушателя

@Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            String item = parent.getItemAtPosition(position).toString();

            // Showing selected spinner item
            Toast.makeText(parent.getContext(), "Selected: " + item, Toast.LENGTH_LONG).show();
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {
        }

вызов слушателя, когда карты создаются только в первый раз. На этот раз тост мужской ценности. Тогда это не поджаривает никакой ценности.

Полный код

package com.panenviron.fragments;

import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.AppBarLayout;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.text.TextUtils;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Spinner;
import android.widget.TableRow;
import android.widget.TextView;
import android.widget.Toast;

import com.jmedeisis.draglinearlayout.DragLinearLayout;
import com.panenviron.R;
import com.panenviron.references.Constants;
import com.panenviron.userfunctions.ConnectionDetector;
import com.panenviron.userfunctions.Database;
import com.panenviron.userfunctions.UserFunctions;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import link.fls.swipestack.SwipeStack;



public class TaskCardListShow extends Fragment implements SwipeStack.SwipeStackListener, View.OnClickListener {

    ConnectionDetector cd;
    Database db;
    UserFunctions uf;
    Context context;
    SharedPreferences pref;
    public int cardCounter;
    ArrayList<HashMap<String, String>> cardList;
    ArrayList<HashMap<String, String>> cardListArrayToAdapter;
    ArrayList<ArrayList<HashMap<String, String>>> multiChoiceSelectedList;


    ArrayList<HashMap<String, String>> tmpList = new ArrayList<HashMap<String, String>>();

    private ArrayList<String> mData;
    private ArrayList<String> LayOutData;
    private SwipeStack mSwipeStack;
    private SwipeStackAdapter mAdapter;


    AutoCompleteTextView autoTextView;

    int taskIdBundle;
    public TaskCardListShow() {
    }
    public static TaskCardListShow newInstance(List<String> dataList) {

        TaskCardListShow _TaskCardListShow = new TaskCardListShow();

        return _TaskCardListShow;
    }

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.task_card_list_show, container, false);
        try {
            uf = new UserFunctions(getActivity());
            cd = new ConnectionDetector(getActivity());
            db = new Database(getActivity());
            context=getActivity().getApplicationContext();
            pref = getActivity().getApplicationContext().getSharedPreferences(Constants.USER_PREF, 0); // 0 - for private mode
        } catch (Exception e) {
            e.printStackTrace();
        }
        try {
            Bundle bundle = this.getArguments();
            if (bundle != null) {
                taskIdBundle = bundle.getInt(Constants.TASK_ID_FIELD_COMMON, 0);
                Toast.makeText(getActivity().getApplicationContext(),"task id --"+taskIdBundle, Toast.LENGTH_SHORT).show();
            }

            cardCounter=db.getNoOfCardsToDisplay(taskIdBundle);
            cardList=db.getTaskQuestionsAsPerWorkId(taskIdBundle);
            cardListArrayToAdapter = new  ArrayList<HashMap<String, String>>();
            //fillStackCard();
        } catch (Exception e) {
            e.printStackTrace();
        }

        //final RelativeLayout snackbarlocation=(RelativeLayout)view.findViewById(R.id.snackbarlocation);
        FloatingActionButton fab = (FloatingActionButton) view.findViewById(R.id.fab);;
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar snack = Snackbar.make(view, "Do you want to close this task ?", Snackbar.LENGTH_LONG)
                        .setAction("Yes !.",new View.OnClickListener() {
                            @Override
                            public void onClick(View view) {
                                removeTaskCardFragment();
                            }
                    });
                View Snackiew = snack.getView();
                FrameLayout.LayoutParams params = (FrameLayout.LayoutParams)Snackiew.getLayoutParams();
                params.topMargin = 100;
                params.gravity = Gravity.TOP;
                Snackiew.setLayoutParams(params);
                snack.show();
            }
        });

        mSwipeStack = (SwipeStack) view.findViewById(R.id.swipeStack);
        mData = new ArrayList<>();
        LayOutData = new ArrayList<>();
        //mAdapter = new SwipeStackAdapter(mData,LayOutData);
        mAdapter = new SwipeStackAdapter(cardList);
        mSwipeStack.setAdapter(mAdapter);
        mSwipeStack.setListener(this);
        context=getActivity().getApplicationContext();

        //cardCounter=10;// write function for getting card count.

        return view;
    }


    @Override
    public void onClick(View v) {

    }
    @Override
    public void onViewSwipedToRight(int position) {
        String swipedElement = mAdapter.getItem(position);
        Log.e("position right-", String.valueOf(position));
    }

    @Override
    public void onViewSwipedToLeft(int position) {
        String swipedElement = mAdapter.getItem(position);
        Log.e("position-", String.valueOf(position));
    }

    @Override
    public void onStackEmpty() {
        Log.e("im at empty ",tmpList.toString());
        removeTaskCardFragment();
    }
    public void removeTaskCardFragment(){
        FragmentManager manager = getActivity().getSupportFragmentManager();
        FragmentTransaction mFragmentTransaction = manager.beginTransaction();
        TaskCardListShow _TaskCardListShowFragment = new TaskCardListShow();
        mFragmentTransaction.remove(_TaskCardListShowFragment);
        mFragmentTransaction.commit();
        manager.popBackStack();
    }

    public class SwipeStackAdapter extends BaseAdapter implements CompoundButton.OnCheckedChangeListener,AdapterView.OnItemSelectedListener {

        private ArrayList<HashMap<String, String>> _taskCardDataArray;
        TextView _textViewCard;
        ArrayList<HashMap<String, String>> suggestionAnswer;
        LinearLayout nextCardButtonLayOut;
        ImageView _nextCardButton;

        ArrayList<String> SpinnerOptions=new ArrayList<String>();
        Spinner _listSpinner;

        private RadioGroup radioGroup;
        private RadioButton radioButton;
        int pos;
        String likertScaleText;
        //private List<String> LayOutData;
        DragLinearLayout dragDropAndroidLinearLayout;

        public SwipeStackAdapter(ArrayList<HashMap<String, String>> taskCardDataArray) {
            this._taskCardDataArray = taskCardDataArray;
            //this.LayOutData = Ldata;
        }

        @Override
        public int getCount() {
            return _taskCardDataArray.size();
        }

        @Override
        public String getItem(int position) {
            return String.valueOf(_taskCardDataArray.get(position));
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {
            String LName=_taskCardDataArray.get(position).get(Constants.LAYOUT_NAME_FIELD_COMMON).toLowerCase();
            likertScaleText="";
            suggestionAnswer=new ArrayList<HashMap<String, String>>();


            String QuestionText=_taskCardDataArray.get(position).get(Constants.QUESTION_TEXT_FIELD_COMMON);
            if(TextUtils.isEmpty(QuestionText)){
                QuestionText="Your QUESTION text will come here now it is null from api";
            }
            final int QuestionId= Integer.parseInt(_taskCardDataArray.get(position).get(Constants.QSTN_ID_FIELD_COMMON));
            int IS_SUGGEST= Integer.parseInt(_taskCardDataArray.get(position).get(Constants.IS_SUGGEST_FIELD_COMMON));
            if(IS_SUGGEST==0){
                suggestionAnswer=db.getSuggestAnswerForQuestion(QuestionId,taskIdBundle);
            }else{

            } 

            try {
                int id = getActivity().getApplicationContext().getResources().
                        getIdentifier(LName, "layout", getActivity().getPackageName());
                convertView = getActivity().getLayoutInflater().inflate(id, parent, false);
                tmpList = new ArrayList<HashMap<String, String>>();
                switch(LName.toLowerCase()){
                    case "tc":
                         // some type of cards functionalities
                        break;
                    case "mc":
                         // some type of cards functionalities
                        break;
                    case "mci":
                        // some type of cards functionalities
                        break;
                    case "lks":
                        // some type of cards functionalities
                        break;
                    case "dp":
                        // some type of cards functionalities
                        break;
                    case "txt":
                        // some type of cards functionalities
                        break;
                    case "list":
                        _textViewCard=(TextView)convertView.findViewById(R.id.textViewCard);
                        _textViewCard.setText(QuestionText);
                        final String finalQuestionTextLIST = QuestionText;
                        _listSpinner=(Spinner)convertView.findViewById(R.id.listSpinner);
                        ArrayList<HashMap<String, String>> TempOptionArrays=new  ArrayList<HashMap<String, String>>();
                        TempOptionArrays=db.getOptins(QuestionId,taskIdBundle);
                        for (int i = 0; i < TempOptionArrays.size(); i++)  {
                            SpinnerOptions.add(TempOptionArrays.get(i).get(Constants.ANSWER_SUGGESTION_TEXT_FIELD_COMMON));
                        }
                        Log.e("SpinnerOptions--",SpinnerOptions.toString());

                        Spinner spinner = (Spinner) convertView.findViewById(R.id.listSpinner);
                        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, SpinnerOptions);
                        adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
                        spinner.setAdapter(adapter);


/*
                        // Creating adapter for spinner
                        final ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>
                                (getActivity(), android.R.layout.simple_spinner_item, SpinnerOptions);
                        // Drop down layout style - list view with radio button
                        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                        // attaching data adapter to spinner
                        _listSpinner.setAdapter(dataAdapter);
                        //dataAdapter.notifyDataSetChanged();
                        _listSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                            @Override
                            public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
                                Toast.makeText(parentView.getContext(), "Selected ---: " + SpinnerOptions.get(position), Toast.LENGTH_LONG).show();
                                dataAdapter.notifyDataSetChanged();

                            }

                            @Override
                            public void onNothingSelected(AdapterView<?> parentView) {

                            }
                        });*/


                        break;
                    case "arr":
                        break;
                }



            } catch (Exception e) {
                e.printStackTrace();
            }
            Log.e("position=", String.valueOf(position));
            return convertView;
        }



        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            String item = parent.getItemAtPosition(position).toString();

            // Showing selected spinner item
            Toast.makeText(parent.getContext(), "Selected: " + item, Toast.LENGTH_LONG).show();
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {
        }
    }




}

Ответы на вопрос(2)

Ваш ответ на вопрос