如何使用微调器setOnItemLongClickListener

elC*_*rda 8 android spinner

当用户长时间点击某个项目时,我试图使Spinner的行为方式不同.我有一些项目的旋转器,我想要两件事.

  1. 当用户简单地点击我想要正常的项目时,选择它.
  2. 当用户长时间点击我要显示对话框的项目时,使用"编辑项目","删除项目"等选项.

第一步效果很好(当然),但是当我尝试执行第二个任务时,我无法使微调器生成longClicked事件.

这是我的代码:

    this.projectSpinner = (Spinner) this.findViewById(R.id.SpinnerProjects);
    this.projectSpinner.setLongClickable(true);

    this.projectSpinner.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener(){
        public boolean onItemLongClick(AdapterView<?> arg0, 
                                       View arg1, 
                                       int arg2, 
                                       long arg3) {
            Toast.makeText(
                 AndroidTimeTrackerMainActivity.this, 
                 "Long click", 
                 Toast.LENGTH_SHORT).show(); // This toast doesn't show up.
            return false;
        }

    });
Run Code Online (Sandbox Code Playgroud)

Rom*_*Guy 15

Spinner目前不支持OnItemLongClickListener.


小智 8

您可以将OnLongClickListener添加到Spinner中.当菜单上的项目被长时间点击时,它不会被触发,但是当用户长时间点击微调器本身时它将被触发.

this.projectSpinner.setOnLongClickListener(new OnLongClickListener() 
{
    @Override
    public boolean onLongClick(View v) 
    {
        System.out.println(chuteSpinner.getSelectedItem().toString() + " is long clicked");
        return true;
    }
});
Run Code Online (Sandbox Code Playgroud)