android - 在片段内传递微调器的值
问题描述
我有一个包含微调器的片段。微调器将显示“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
}
如果我犯了任何错误,请原谅我。我是新手。
解决方案
您可以在片段中创建数据成员,如下所示:
String spinnerSelectedItem;
然后,您可以像这样初始化该成员onItemSelected()
:
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
spinnerSelectedItem = statisticsDuration.get(position);
}
此后,spinnerSelectedItem
将包含用户选择的值。
推荐阅读
- grails - 如何解决 'groovy.lang.MissingMethodException' ...可能的解决方案:notify()、render(java.lang.String)
- java - 将字符串附加到 Java 中 mongoDB 文档中的现有数组
- c# - 如何在 ASP.NET Web API 中收集跟踪信息?
- html - 页脚位于一个 html 页面的底部,但位于另一个页面的中间
- debian - 在 Virtualbox 上虚拟化 Debian 9.8
- go - 使用 go test 时的身份验证错误
- unity3d - 任何路径的 AssetDatabase.LoadAssetAtPath 的替代方案?
- javascript - 在 Svelte 3 中解构“on:change”事件
- app-store-connect - 无法让 JWT(json Web 令牌)与 PHP 中的 Apple App Store Connect API 一起使用
- javascript - 使用 POST 方法使用 Ajax 从 javascript 向 PHP 发送大量字符