首页 > 解决方案 > 在片段内传递微调器的值

问题描述

我有一个包含微调器的片段。微调器将显示“90 天”、“180 天”和“365 天”。我的问题是如何将微调器选定的项目传递到片段内。

我的片段代码部分是

      void PrevReqList(String enquiryStatusCode, final View rootView){
                final   ListView enquiriesList=(ListView)rootView.findViewById(R.id.req_list);
                lists.add(enquiriesList);


                ArrayList<String> statisticsDuration = new ArrayList<String>();
                statisticsDuration.add(getResources().getString(R.string.days90));
                statisticsDuration.add(getResources().getString(R.string.days180));
                statisticsDuration.add(getResources().getString(R.string.days365));

                ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this.getActivity(), R.layout.item_spinner_small_white, statisticsDuration);
                dataAdapter.setDropDownViewResource(R.layout.item_spinner);
                listDurationSpinner =(Spinner)rootView.findViewById(R.id.list_duration);
                listDurationSpinner.setAdapter(dataAdapter);
                listDurationSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                    @Override
                    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

String item = parent.getItemAtPosition(position).toString();

             **How to pass from here to below?**

                    }

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

                    }


                });

                SharedPreferences preferences = this.getActivity().getSharedPreferences(Common.preferenceName, Context.MODE_PRIVATE);
                String userName=preferences.getString(Common.userName,"");
                final TextView noItems=(TextView)rootView.findViewById(R.id.no_items);
                noItems.setVisibility(View.GONE);
                final String reqtype= this.getActivity().getIntent().getExtras().getString(Common.REQUISITIONTYPE);
                enquiriesList.setVisibility(View.GONE);
                int duration=0;
                if(listDurationSpinner.getSelectedItem().toString().equals(getResources().getString(R.string.days90))){
                    duration = 90;
                }
                else if(listDurationSpinner.getSelectedItem().toString().equals(getResources().getString(R.string.days180))){
                    duration=180;
                }
                else if(listDurationSpinner.getSelectedItem().toString().equals(getResources().getString(R.string.days365))){
                    duration=365;
                }

    // My remaining code


    }

如果我犯了任何错误,请原谅我。我是新手。

标签: android

解决方案


您可以在片段中创建数据成员,如下所示:

String spinnerSelectedItem;

然后,您可以像这样初始化该成员onItemSelected()

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
           spinnerSelectedItem = statisticsDuration.get(position);
     }

此后,spinnerSelectedItem将包含用户选择的值。


推荐阅读