最近我做了这件事。 假设我想隐藏listItem上的按钮。 然后在列表适配器的getView中,在全局向量中添加该按钮。 如下。
Button del_btn = viewCache.getFrame(); view_vec.add(del_btn);
这里viewCache是ViewCache类的一个对象,如下所示 –
class ViewCache { private View baseView; private Button button; public ViewCache(View baseView) { this.baseView = baseView; } public Button getButton() { if(button == null) { button = (Button) baseView.findViewById(R.id.DeleteChatFrndBtn); } return button; } } //it is necessary sometimes because otherwise in some cases the list scroll is slow.
现在,您希望在单击其他按钮时看到listItem的按钮。 然后代码如下 –
public void onClick(View v) { // TODO Auto-generated method stub switch(v.getId()) { case R.id.EditChatFrndBtn: length = view_vec.size(); for(int i = 0; i < length; i++) { Button btn = (Button) view_vec.elementAt(i); btn.setVisibility(View.VISIBLE); } doneBtn.setVisibility(View.VISIBLE); editBtn.setVisibility(View.INVISIBLE); break; } }
而不是R.id.EditChatFrndBtn将您的按钮ID设置为单击,您将不可见/可见listItem的按钮。