1

我想在操作栏按钮上触发两个不同的功能:一个在“单击”上,另一个在“长按”上。举个例子,它应该像汽车收音机一样工作。您可以在其中长按存储无线电频道的频率并在短按时调用它。

问题是,您在操作按钮上并没有真正的自定义侦听器。谷歌给出:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle presses on the action bar items
    switch (item.getItemId()) {
        case R.id.action_search:
            openSearch();
            return true;
        case R.id.action_compose:
            composeMessage();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

是否有可能在长按时调用监听器?

4

2 回答 2

1

您正在寻找的是OnLongClickListener。请注意,它必须返回一个布尔值,表示它是否执行了 LongClick。

您需要在同一个 Button 对象上添加两个侦听器:

button.setOnClickListener(new OnClickListener() { ... });
button.setOnLongClickListener(new OnLongClickListener() { ... });
于 2013-11-01T12:09:51.763 回答
0

您可以为操作栏创建自定义视图并onLongClick在自定义视图上实现。

于 2013-11-01T12:33:12.057 回答