Layoutinflater会膨胀多个按钮,如何在点击时使所有其他按钮不可见

时间:2012-10-29 21:35:59

标签: android button layout-inflater

我有以下问题,我给包含2个按钮的布局充气。 onClick方法工作正常,一切运行顺利。但是,一旦点击其中一个按钮,我想让两个按钮每次都不可见。我知道如何制作被点击的按钮invisbile但是我发现无法使相应的按钮不可见。非常感谢任何帮助 (如果有任何问题,这都是在片段中完成的)

for(i = 0; i < al.size(); i = i+6) { 
    TableLayout tl = (TableLayout)fragmentView.findViewById(R.id.myTableLayout);
    LayoutInflater inflater1 = (LayoutInflater)getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View itemView = inflater1.inflate(R.layout.element_request, null);  

    TextView t1 = (TextView) itemView.findViewById(R.id.tvdescription1);   
    t1.setText(al.get(i+2)); 

    TextView t2 = (TextView) itemView.findViewById(R.id.tvdescription2);   
    t2.setText(al.get(i+3));
    String id = al.get(i+1);

    accept = (Button) itemView.findViewById(R.id.baccept);
    accept.setTag(R.id.tvdescription1, id);
    String id1 ="a"+id;
    accept.setTag(R.id.tvdescription2, id1);

    decline = (Button) itemView.findViewById(R.id.bdecline);
    decline.setTag(R.id.tvdescription1, id);
    String id2 = "b"+id;
    decline.setTag(R.id.tvdescription2,id2);
    tl.addView(itemView, new TableLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));

    accept.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            crid = v.getTag(R.id.tvdescription1);
            crid2 = crid.toString();
            ....Code...
            accept = (Button)v;
            accept.setVisibility(View.GONE);
            //----->set corresponding "decline" button also Invisible
        }
    }
}

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

ViewGroup row = (ViewGroup) v.getParent();
Button dec = (Button) row.getChildAt(3); //If decline is the 4th member in the view
dec.setVisibility(View.GONE);