Добавление OnItemSelectedListener в Spinner - PullRequest
4 голосов
/ 25 марта 2012

У меня есть кнопка и счетчик (изначально скрытый).Когда пользователь нажимает кнопку, спиннер заполняется элементами и становится видимым.Теперь я хотел бы добавить 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 и включаю необходимые функции.Но у меня есть несколько блесен и мне нужно создавать отдельных слушателей для разных блесен.Любая помощь будет оценена.Спасибо!

Ответы [ 2 ]

4 голосов
/ 02 января 2014
    final String[] s2 = getResources().getStringArray(R.array.capteur_size);
    final EditText ed = (EditText) findViewById(R.id.editTextCoC);

    spinnerCoC = (Spinner) findViewById(R.id.spinnerCoC);

    spinnerCoC.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {

            ed.setText(s2[arg2]);

        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub

        }       

    });
1 голос
/ 25 марта 2012

Объявите ваш Spinner как поле, создайте экземпляр слушателя, как только вы найдете findViewById, и используйте его везде, где вам нужно.

...