【问题标题】:Android Long Press Spinner ViewAndroid 长按微调器视图
【发布时间】:2011-09-19 03:31:33
【问题描述】:

我希望能够长按微调器视图中的项目并显示 contextMenu。我试过这段代码:

spinner = (Spinner) findViewById(R.id.catagorySpinner);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(context,android.R.layout.simple_dropdown_item_1line, data);
spinner.setAdapter(adapter);
registerForContextMenu(spinner);

但是你可以猜到,这给实际的 Spinner 添加了一个上下文菜单,而不是里面的内容。有谁知道我该怎么做?

【问题讨论】:

    标签: android contextmenu spinner


    【解决方案1】:

    你试过了吗?

            spinner.setOnItemLongClickListener(new OnItemLongClickListener() {
    
                public boolean onItemLongClick(AdapterView<?> parent, View view, int arg2, long arg3) {
    
                    view.showContextMenu();
                    return true;
    
                }
            });
    

    【讨论】:

    • 仅适用于 Spinner 按钮本身而非其内容
    • 文档说微调器不支持项目点击监听器。
    【解决方案2】:

    您可以在适配器的getView() 方法中注册每个项目。

    View getView(View convertView, ... ) {
       ....
       // inflate view or reuse.
       ....
       getContext().registerForContextMenu(convertView);
       ....
       return convertView;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多