Android 在片段内传递微调器的值

Android 在片段内传递微调器的值,android,Android,我有一个包含旋转器的片段。微调器将显示“90天”、“180天”和“365天”。我的问题是如何将微调器所选项目传递到片段中 我的片段代码部分是 void PrevReqList(String enquiryStatusCode, final View rootView){ final ListView enquiriesList=(ListView)rootView.findViewById(R.id.req_list);

我有一个包含旋转器的片段。微调器将显示“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


    }
void prefreqlist(字符串查询状态代码,最终视图根视图){
最终ListView查询列表=(ListView)rootView.findViewById(R.id.req_列表);
列表。添加(查询列表);
ArrayList statisticsDuration=新的ArrayList();
statisticsDuration.add(getResources().getString(R.string.days90));
statisticsDuration.add(getResources().getString(R.string.days180));
add(getResources().getString(R.string.days365));
ArrayAdapter dataAdapter=新的ArrayAdapter(this.getActivity(),R.layout.item\u微调器\u small\u white,statisticsDuration);
dataAdapter.setDropDownViewResource(R.layout.item_微调器);
listDurationSpinner=(Spinner)rootView.findViewById(R.id.list\u duration);
setAdapter(dataAdapter);
listDurationSpinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
String item=parent.getItemAtPosition(position.toString();
**从这里到下面怎么走**
}
@凌驾
未选择公共无效(AdapterView父级){
}
});
SharedReferences preferences=this.getActivity().getSharedReferences(Common.preferenceName,Context.MODE\u PRIVATE);
字符串userName=preferences.getString(Common.userName,“”);
final TextView noItems=(TextView)rootView.findViewById(R.id.no_项);
noItems.setVisibility(View.GONE);
最终字符串reqtype=this.getActivity().getIntent().getExtras().getString(Common.requisionType);
查询列表.setVisibility(View.GONE);
int持续时间=0;
if(listDurationSpinner.getSelectedItem().toString().equals(getResources().getString(R.string.days90))){
持续时间=90;
}
else if(listDurationSpinner.getSelectedItem().toString().equals(getResources().getString(R.string.days180))){
持续时间=180;
}
else if(listDurationSpinner.getSelectedItem().toString().equals(getResources().getString(R.string.days365))){
持续时间=365;
}
//我剩下的代码
}

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

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

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

然后,您可以在
onItemSelected()中初始化该成员,如下所示:

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
           spinnerSelectedItem = statisticsDuration.get(position);
     }
@覆盖
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
spinnerSelectedItem=统计持续时间.get(位置);
}

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

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

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

然后,您可以在
onItemSelected()中初始化该成员,如下所示:

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
           spinnerSelectedItem = statisticsDuration.get(position);
     }
@覆盖
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
spinnerSelectedItem=统计持续时间.get(位置);
}
此后,
spinnerSelectedItem
将包含用户选择的值。

请尝试此代码。。 做一个如下的方法

    private void getData(String value){
    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(value.equals(getResources().getString(R.string.days90))){
        duration = 90;
    }
    else if(value.equals(getResources().getString(R.string.days180))){
        duration=180;
    }
    else if(value.equals(getResources().getString(R.string.days365))){
        duration=365;
    }

}
之后,为spiner视图选择项目

  listDurationSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                  getData(parent.getSelectedItem().toString());// check this
                   //or
                  getData(spiner.getSelectedItem().toString());
               }

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

            }


        });
listDurationSpinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
getData(父级.getSelectedItem().toString());//检查此项
//或
getData(spiner.getSelectedItem().toString());
}
@凌驾
未选择公共无效(AdapterView父级){
}
});
试试这段代码。。 做一个如下的方法

    private void getData(String value){
    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(value.equals(getResources().getString(R.string.days90))){
        duration = 90;
    }
    else if(value.equals(getResources().getString(R.string.days180))){
        duration=180;
    }
    else if(value.equals(getResources().getString(R.string.days365))){
        duration=365;
    }

}
之后,为spiner视图选择项目

  listDurationSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                  getData(parent.getSelectedItem().toString());// check this
                   //or
                  getData(spiner.getSelectedItem().toString());
               }

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

            }


        });
listDurationSpinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
getData(父级.getSelectedItem().toString());//检查此项
//或
getData(spiner.getSelectedItem().toString());
}
@凌驾
未选择公共无效(AdapterView父级){
}
});

您可以使用
statisticsDuration.get(position)
获取值,并将其存储在该函数的某个全局变量中,然后根据需要在下面的任何位置使用该变量。在何处传递微调器所选值?@Abu Yousuf bro i添加了“String item=parent.getItemAtPosition(position).toString();“已选择。但是如何将值传递或连接到下面的部分?您可以使用
统计持续时间获取值。获取(位置)
并存储在该函数的某个全局变量中,然后在需要时使用下面的变量。在何处传递微调器所选值?@Abu Yousuf bro i添加”String item=parent.getItemAtPosition(position.toString();“已选择。但如何将值传递或连接到下面的部分?@parekhkriti在您建议的更改后,spinnerSelectedItem将转换为最后一个元素Arrai已要求您将该变量设置为datamember,即。