ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

android – 将OnItemSelectedListener添加到Spinner

2019-06-21 02:12:02  阅读:117  来源: 互联网

标签:android android-spinner spinner


我有一个按钮和一个微调器(最初隐藏).当用户按下按钮时,微调器将填充项目并变为可见.现在我想将OnItemSelectedListener添加到微调器.我尝试过很多没有运气的教程.

这是我的OnCreate功能

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button load_routes = (Button)findViewById(R.id.load_routes);
    Spinner routes = (Spinner)findViewById(R.id.routes_list);

    load_routes.setOnClickListener(new View.OnClickListener()
    {
        public void onClick(View v)
        {
            load_routes(v);
        }
    });

    routes.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
    {
        public void onItemSelected(AdapterView<?> arg0, View v, int position, long id)
        {
            Log.v("routes", "route selected");
        }

        public void onNothingSelected(AdapterView<?> arg0)
        {
            Log.v("routes", "nothing selected");
        }
    });
}

这是我的load_routes函数

private void load_routes(View v)
{
    Spinner routes = (Spinner)findViewById(R.id.routes_list);
    List<String> routes_list = RouteParser.get_routes();
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, routes_list);
    routes.setAdapter(adapter);

    TableRow list_of_routes_row = (TableRow)findViewById(R.id.list_of_routes_row);
    list_of_routes_row.setVisibility(View.VISIBLE);
}

此设置不起作用.我让它工作的唯一方法是当我将我的监听器设置为routes.setOnItemSelectedListener(this)然后我实现OnItemSelectedListener并包含必要的函数.但我有多个微调器,需要为不同的微调器创建单独的侦听器.任何帮助将不胜感激.谢谢!

解决方法:

声明您的Spinner作为字段在您执行findViewById后实例化侦听器并在任何您想要的地方使用它.

标签:android,android-spinner,spinner
来源: https://codeday.me/bug/20190621/1250526.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有