首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从OnItemSelectedListener调用值

从OnItemSelectedListener调用值
EN

Stack Overflow用户
提问于 2019-03-07 07:57:57
回答 1查看 190关注 0票数 0

我从spinner中的选定项中获得一个值,该值使用'selectedSpinner'传递给字符串变量spinner.setOnItemSelectedListener()。我试图在方法之外访问'selectedSpinner'

我尝试将'selectedSpinner'分配给另一个字符串'selectedCategory',但是在spinner.setOnItemSelectedListener()方法之外,'selectedSpinner'无法被解析。应该做些什么来访问方法之外的'selectedSpinner'?谢谢

代码语言:javascript
复制
private void recordDialog() {

    ...
    //get category
    final Spinner spinner = subView.findViewById(R.id.spinner);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.category, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);
    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            String selectedSpinner = parent.getItemAtPosition(position).toString();
        }

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

        }
    });
    final String selectedCategory = selectedSpinner;
    ...
    final AlertDialog alertDialog = builder.create();
    alertDialog.show();
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-07 08:00:25

您需要在selectedSpinner函数之外声明recordDialog (或将其设置为全局)。

代码语言:javascript
复制
String selectedSpinner;
          ...
private void recordDialog() {
          ...... 
     @Override
      public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
         selectedSpinner = parent.getItemAtPosition(position).toString();
      }
}

之后,您可以将selectedSpinner分配给selectedCategory

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55038735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档