ListView
当我连续单击 3 个点区域时,我想要弹出菜单。
registerForContextMenu
不会满足我的需要,因为它发生在长按期间,ListView
在行的任何区域。
我想知道。
- 如何
ListView
在行中创建一个 3 点外观的 UI? - 如何拥有 PopupMenu,即使是 Android 2.3?
ListView
当我连续单击 3 个点区域时,我想要弹出菜单。
registerForContextMenu
不会满足我的需要,因为它发生在长按期间,ListView
在行的任何区域。
我想知道。
ListView
在行中创建一个 3 点外观的 UI?您可以使用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));
我知道它有点晚了,你可能已经找到了解决方案,但我刚刚遇到了你的问题,这是我的解决方案......
下面是我的 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;
}
或者您可以在单击 3 个点时显示一个对话框。PopupWindow 需要定位在屏幕上的显示位置。显示一个对话框可以识别您选择的女巫 cloumn。