prevent微调下拉列表显示 [英] Prevent spinner dropdown to show

查看:121
本文介绍了prevent微调下拉列表显示的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的是其微调适配器动态填充。

I am using a spinner whose adapter is dynamically populated.


  • 当有多个项目,微调行为的标准之一。在一点击,下拉被显示,允许用户选择一个项目

  • 当只有一个项目,我想prevent下拉菜单出现,赶上click事件要执行的操作。

我找不到(上点击即显示了只有一个项目的下拉菜单)的解决方案,以prevent的默认行为。如何做到这一点任何想法?
谢谢

I can't find a solution to prevent the default behavior (i.e. showing the dropdown for only one item on a click). Any ideas on how to do this? Thanks

推荐答案

HM ...尝试使用 setClickable(FASLE)的setEnabled( FALSE)如果只有一个项微调

hm... try to use setClickable(fasle) or setEnabled(false) if only one item in spinner.

试试这个

public class SpinnerActivity extends Activity {

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

        Spinner spinner = (Spinner) findViewById(R.id.spinner1);
        List<String> list = new ArrayList<String>();
        list.add("list 1");
        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list);
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(dataAdapter);

        if (list.size() < 2) {
            spinner.setClickable(false);
            spinner.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    if (event.getAction() == MotionEvent.ACTION_UP) {
                        Toast.makeText(SpinnerActivity.this, "Catch it!", Toast.LENGTH_SHORT).show();
                    }
                    return true;
                }
            });
        }


    }
}

这篇关于prevent微调下拉列表显示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆