我的自定义 ArrayAdapter中的方法中有一个setOnClickLisnter
方法。getView
我想要做的是,imageButton
在每行内单击一次ListView
,我希望它打开一个 ContextMenu。
当您长按ListView
. 现在我想将相同的功能转移到上面提到的短按上。
我的里面有这个onCreate
:
registerForContextMenu(getListView());
我也有一个onCreateContextMenu
里面的Activity。 我的主要问题是,您如何从内部访问它ArrayAdapter
?
编辑: 我不必在setOncLickListner
方法中执行此操作,只需在getView
获取视图的代码:
@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;
}
更新:我想我正在改变我的计划,并将使用带有单选按钮的警报对话框。在这种情况下,上下文菜单可能不合适。