当我点击ListView
行中的3个点区域时,我想要弹出菜单。
registerForContextMenu
无法满足我的需求,因为它发生在长按期间ListView
行的任何区域。
我想知道。
ListView
行创建一个3点看UI?答案 0 :(得分:4)
您可以使用ImageView
以3点显示图像。
popupmenu有两种方式
a)使用一些布局并使它们可见/消失
b)使用PopupWindow
。
这是PopupWindow的示例代码
PopupWindow popupWindow = new PopupWindow(context);
View popUpView = View.inflate(activity, linearlayout, null);
popUpView.setBackgroundColor(Color.TRANSPARENT);
mpopup.setContentView(popUpView);
mpopup.setHeight(LayoutParams.WRAP_CONTENT);
mpopup.setWidth(LayoutParams.WRAP_CONTENT);
mpopup.setFocusable(true);
mpopup.setBackgroundDrawable(activity.getResources().getDrawable(R.drawable.transperent));
mpopup.setOutsideTouchable(true);
mpopup.setAnimationStyle(R.anim.slide_out_up);
mpopup.showAtLocation(popUpView, Gravity.TOP, activity.getResources()
.getInteger(R.integer.log_out_popup_x), activity.getResources()
.getInteger(R.integer.log_out_popup_y));
答案 1 :(得分:2)
我知道它有点晚了你可能找到了解决方案,但我刚刚遇到了你的问题,这是我的解决方案......
以下是我的Adapter类的getView方法的代码......
@Override
public View getView(int p, View convertView, ViewGroup parent)
{
final ViewHolder holder;
if (convertView == null)
{
holder = new ViewHolder();
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.d_item, null);
holder.dHeading = (TextView) convertView.findViewById(R.id.txt);
holder.ds = (TextView) convertView.findViewById(R.id.txt1);
holder.options = (ImageView)convertView.findViewById(R.id.dPopupMenu);
convertView.setTag(holder);
}
else
{
holder = (ViewHolder) convertView.getTag();
}
holder.dHeading.setText(DList.get(p).getDHeading());
holder.ds.setText(DList.get(p).getDs());
holder.options.setOnClickListener( new OnClickListener()
{
@Override
public void onClick(View v)
{
final PopupMenu popmenu = new PopupMenu(context, holder.options);
popmenu.getMenuInflater().inflate(R.menu.dua_popup_menu, popmenu.getMenu());
popmenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener()
{
public boolean onMenuItemClick(MenuItem item)
{
Toast.makeText(context, "You Clicked : " + item.getTitle(), Toast.LENGTH_SHORT).show();
return true;
}
});
popmenu.show();
}
});
return convertView;
}
答案 2 :(得分:0)
或者,当点击3个点时,您可以显示对话框。 PopupWindow需要找到屏幕上显示的位置。 显示一个对话框可以识别您选择的女巫。