gpt4 book ai didi

android - 自定义组件中的上下文菜单

转载 作者:行者123 更新时间:2023-11-29 02:13:43 26 4
gpt4 key购买 nike

我正在构建我的自定义组件,我想在其中打开上下文菜单。到目前为止,我已经成功创建并显示了执行以下操作的上下文菜单:

public class CustomComponent extends LinearLayout implements OnClickListener, OnCreateContextMenuListener   {

private final MenuInflater menuInflator;

public CustomComponent(final Context context) {
this(context, null);
}

public CustomComponent(final Context context, final AttributeSet attrs) {
super(context, attrs);

menuInflator = new MenuInflater(context);

final LayoutInflater inf = LayoutInflater.from(context);
inf.inflate(R.layout.component, this, true);

setOnClickListener(this);
setOnCreateContextMenuListener(this);
}

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
menuInflator.inflate(R.menu.menu_context, menu);
}

@Override
public void onClick(View v) {
showContextMenu();
}

我现在面临的问题是我不知道如何在这个组件中调用 onContextItemSelected() 函数。我正在查看 Activity 中的一些源代码并注意到它有一个 mWindow 成员来保存这些回调。我不确定是否可以通过这种方式实现。有什么建议吗?

最佳答案

在搜索了其他选项之后,我找到了一个非常简单的解决方案:

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
menuInflator.inflate(R.menu.menu_context, menu);
menu.getItem(0).setOnMenuItemClickListener(this);
}

@Override
public boolean onMenuItemClick(MenuItem item) {
// Do something
return false;
}

当然你需要实现 OnMenuItemClickListener 才能工作

关于android - 自定义组件中的上下文菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5716272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com