我有这样的网格视图:
现在,当我点击按钮的铅笔图标时,在gridview项目中,我想显示三个按钮。也许像浮动按钮。
我的布局:
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="10dp"
android:paddingTop="10dp"
android:layout_gravity="right|bottom" >
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton"
android:src="@drawable/pencil"
android:background="@color/listrow"
android:layout_gravity="right|bottom" />
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton1"
android:src="@drawable/pencil"
android:background="@color/listrow"
android:layout_gravity="right|bottom"
android:visibility="gone" />
</LinearLayout>
我的代码显示按钮消失在positison项目网格:
pen = (ImageButton) v.findViewById(R.id.imageButton);
pen1 = (ImageButton) v.findViewById(R.id.imageButton1);
pen.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
pen1.setVisibility(View.VISIBLE);
Toast.makeText(Activity.this, "At: "+position, Toast.LENGTH_SHORT).show();
}
});
任何人都可以给出任何理想吗?
答案 0 :(得分:1)
单击铅笔图像时最好实现弹出菜单。通过使用弹出菜单,我们可以为每个菜单项添加多个按钮和操作。 要实现popupmenu,请检查此url :: http://javatechig.com/android/android-popup-menu-example
答案 1 :(得分:0)
如果添加一些按钮并将可见性设置为Visibility.GONE
答案 2 :(得分:0)
您可以为gridview项创建ContextMenu。
首先,在您的活动onCreate()
中,为contextMenu注册gridview:
registerForContextMenu(myGridview);
现在,您应该覆盖两种方法onCreateContextMenu()
和onContextItemSelected()
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo)
{
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle("Select The Action");
menu.add(0, v.getId(), 0, "action one");//groupId, itemId, order, title
menu.add(0, v.getId(), 0, "action two");
}
.
.
.
@Override
public boolean onContextItemSelected(MenuItem item){
if(item.getTitle().equals("action one"){
//your code
}
else if(item.getTitle().equals("action two"){
//your code
}else{
return false;
}
return true;
}
}
当用户长按元素时,会出现Android上下文菜单。它也被称为浮动菜单。
答案 3 :(得分:0)
在该适配器类中添加实现OnMenuItemClickListener。
class Abc extends BaseAdapater implements OnMenuItemClickListener{
//override all implement menthods of BaseAdaptar and OnMenuItemClickListener
// now in method add popupmenu on item
@Override
public View getView(final int position, View view, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (view == null)
view = inflater.inflate(R.layout.product_layout, parent, false);//Inflate layout
TextView name = view.findViewById(R.id.productname);
name.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PopupMenu popupMenu = new PopupMenu(ctx, finalView);
popupMenu.setOnMenuItemClickListener(Abc.this);
popupMenu.inflate(R.menu.product_menu);
popupMenu.show();
}
});
// override menu click event code as your menu items
@Override
public boolean onMenuItemClick(MenuItem item) {
return false;
}
}
如果您有任何疑问,请评论我。