获取Spinner点击事件

时间:2018-03-12 12:05:59

标签: android spinner

我有两个微调器,城市和社区,当我选择一个城市时,它填充了社区列表。但我想当我点击邻居微调器和城市是空的,以显示一条消息或Alertdialog。 我试图在第二个旋转器上使用ontouchevent,但它不起作用。 我使用自定义微调器com.toptoche.searchablespinnerlibrary.SearchableSpinner感谢您的帮助

        neighborhoodSpinner.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == MotionEvent.ACTION_UP) {
                    Toast.makeText(getApplicationContext(),"city emty",Toast.LENGTH_LONG).show();
                }
                return false;
            }
        });

4 个答案:

答案 0 :(得分:0)

为什么不使用onClickListener呢?

s.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    });

答案 1 :(得分:0)

cityspinner.setOnItemSelectedListener(new OnItemSelectedListener() 
    {
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) 
        {
            String selectedItemcity = parent.getItemAtPosition(position).toString();

        } // to close the onItemSelected
        public void onNothingSelected(AdapterView<?> parent) 
        {

        }           
    });


neighborhoodSpinner.setOnItemSelectedListener(new OnItemSelectedListener() 
    {
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) 
        {
            String selectedItemneighbour = parent.getItemAtPosition(position).toString();
            if(selectedItemcity.equals("your item name")) //Also you can check previous spinners position here if 0 then show popup or dilaog
            {

                 // do your stuff
            }
        } // to close the onItemSelected
        public void onNothingSelected(AdapterView<?> parent) 
        {

        }           
    });

答案 2 :(得分:0)

使用setOnItemSelectedListener获取微调器项选择侦听器。

mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int position, long l) {
            // Write your code here

        }

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

        }
    });

答案 3 :(得分:0)

这取决于您的微调器是否具有默认值而无意义。 例如,如果您的微调器的城市值为&#34;请选择一个城市&#34;或类似的东西,但情况并非如此。

您的微调器在填充时可能已经选择了城市。

如果&#34;请选择一个城市&#34;是一个选项,这段代码可能会有所帮助:

   Spinner city= findViewById(R.id.spinner_city);
   Spinner neighborhood = findViewById(R.id.spinner_neighborhood);

   neighborhood.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(city.getSelectedItem().toString().equals("Please select a city")){
                Toast.makeText(MyActivity.this, "Please select a city first", Toast.LENGTH_SHORT).show();
            }else{
                // do nothing
            }
        }
    });