Android 微调器 OnLongClickListener 或 OnItemLongClickListener

Android Spinner OnLongClickListener or OnItemLongClickListener

有人可以解决这个问题吗?我的操作栏中有一个微调器,我想在其中捕获长按事件,OnLongClickListener 或单个项目的 OnItemLongClickListener - 以便用户可以编辑值。

我了解到微调器不支持长按,但我希望某些东西 changed/someone 可能有解决方法。

这是编辑字符串的理想解决方案 - 操作栏中没有足够的 space 来放置用于编辑的专用按钮,我的用户直觉地尝试长按以进行编辑。

这里有一些相关的问题(虽然现在已经很老了): Android spinner item long click/touch, How can I use spinner setOnItemLongClickListener

您应该可以 "simulate" 使用以下代码长按:

final Handler actionHandler = new Handler();
        final Runnable runnable = new Runnable() {
            @Override
            public void run() {
                Toast.makeText(Activity.this, "Long click performed", Toast.LENGTH_SHORT).show();
            }
        };

        spinner.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == MotionEvent.ACTION_DOWN) {
                    actionHandler.postDelayed(runnable, 1000);
                } else if(event.getAction() == MotionEvent.ACTION_UP){
                    actionHandler.removeCallbacks(runnable);
                }
                return false;

            }
        });

你可以玩玩时间以获得更多"real"的感觉,但我相信这很漂亮。

希望对你有帮助