刚刚说明了解ICS Actionbar。我正在与Action Bar Sherlock合作,向后兼容我想要做的事情,并且已经通过其样本上的大量源代码。
我有3个图像视图,我想设置一个监听器,长按一次所有3.当用户长按一个时,我将在操作栏上显示一个ActionMode,让他们拍照。由于操作栏似乎与菜单一样工作,我如何知道ImageView在点击按钮后触发了我的ActionMode? p>
现在没有完成很多代码,因为我刚刚开始研究它,这是我想要做的第一件事。
答案 0 :(得分:6)
要启动操作模式,您需要提供ActionMode.Callback
类的实例。对于这样的事情,你应该在这个类中创建一个构造函数,它接受一些关于图像视图的相关信息。
public static class ImageActionMode extends ActionMode.Callback {
private final int viewId;
public ImageActionMode(View view) {
viewId = view.getId();
}
public boolean onActionItemClicked (ActionMode mode, MenuItem item) {
//Do something with viewId as the target
}
//Other callbacks
}
您还可以保留对完整ImageView
或您需要回复选项项的任何其他内容的引用。
现在,当您启动动作模式时,您将执行以下操作:
public void onLongPress(View view, /*whatever else...*/) {
startActionMode(new ImageActionMode(view));
}
答案 1 :(得分:0)
花了一些时间后,我已经实施并成功运作。 在下面的链接中,我给出了正确的代码和解释。