我的自定义 ArrayAdapter 中的 getView
方法中有一个 setOnClickLisnter
方法。
我想要做的是,在 ListView
的每一行内快速单击一个 imageButton
,我希望它打开一个上下文菜单。
当您长按 ListView
时,我目前可以使用 ContextMenu。现在我想将相同的功能转移到上面提到的短按。
我在 onCreate
中有这个:
registerForContextMenu(getListView());
我在 Activity 中还有一个 onCreateContextMenu
。 我的主要问题是,如何从 ArrayAdapter
内部访问它?
编辑: 我不必在 setOncLickListner
方法中执行此操作,只需在 getView
获取 View 的代码:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = inflater.inflate(R.layout.commentlayout, parent,
false);
holder = new ViewHolder();
holder.ib1 = (ImageButton) convertView
.findViewById(R.id.labelChatIcon);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
convertView.setOnCreateContextMenuListener(null);
}
holder.ib1.setBackgroundColor(Color.TRANSPARENT);
holder.ib1.setBackgroundColor(Color.TRANSPARENT);
holder.ib1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// Open Context Menu here
}
});
return convertView;
}
更新:我想我正在改变我的计划,将使用带有单选按钮的警报对话框。在这种情况下,上下文菜单可能不合适。
最佳答案
您可以使用 Alert.Builder 而不是上下文菜单,您可以使用 builder.setView(View v);
添加自定义 View
你会有一个布局文件,其中包含一堆不同宽度的按钮:match_parent。查看this link对于所有可用的不同选项
关于android - 从 ArrayAdapter 内部打开 ContextMenu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14188909/