spinner setOnItemClickListener崩溃了吗?

时间:2017-05-26 19:09:47

标签: java android spinner android-spinner

    holder.spinner_teacher_name=(Spinner) rowView.findViewById(R.id.spinner_teacher_name);

    holder.spinner_teacher_name=(Spinner) rowView.findViewById(R.id.spinner_teacher_name);

    arrayAdapter=new ArrayAdapter<String>(rowView.getContext(), android.R.layout.simple_spinner_item,teacher_name);
    arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    holder.spinner_teacher_name.setAdapter(arrayAdapter);
    holder.spinner.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

    Toast.makeText(rowView.getContext(), "You Clicked "+class_room[position], Toast.LENGTH_SHORT).show();
        }
    });

2 个答案:

答案 0 :(得分:0)

您应该使用选定的侦听器,而不是单击侦听器

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() 
        {
            public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) 
            {
             String selected_item = parent.getItemAtPosition(pos).toString();
             Log.d("TAG", "_log : item_selected : " + selected_item);
            }

            public void onNothingSelected(AdapterView<?> parent) 
            {

            }
        });

答案 1 :(得分:0)

当用户selects来自drop-down的项目时,Spinner对象会收到on-item-selected个事件。

要为selection定义spinner事件处理程序,请实现AdapterView.OnItemSelectedListener接口和相应的onItemSelected()回调方法。

请参阅documentation

使用:

holder.spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {

        Toast.makeText(rowView.getContext(), "You Clicked " + class_room[position], Toast.LENGTH_SHORT).show();
    }

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

    }
});

代替:

holder.spinner.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

        Toast.makeText(rowView.getContext(), "You Clicked "+class_room[position], Toast.LENGTH_SHORT).show();
    }
});