如何在弹出窗口中添加清除按钮

时间:2012-06-23 23:14:41

标签: android

我是Android开发的新手。我创建了一个弹出窗口,在主活动类的按钮单击中调用该窗口。我的弹出窗口中有一些编辑文本字段。我可以通过点击按钮清除弹出窗口中的所有这些编辑文本字段吗?如果是的话怎么样?提前致谢!! 下面是我正在尝试但它给出零点异常。

 public void initatePopupWindow(View view)
{
    try
    {
        LayoutInflater inflater=(LayoutInflater)  ContactdetailsActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View layout=inflater.inflate(R.layout.popupwindow,(ViewGroup)findViewById(R.id.popuplayout));
        pw = new PopupWindow(layout, 500, 500, true);
        pw.showAtLocation(layout, Gravity.CENTER, 0, 0);
        Button b1=(Button)layout.findViewById(R.id.cancel);
       b1.setOnClickListener(cancel_button_click_listener);   
       Button b2=(Button)layout.findViewById(R.id.clear);

       b2.setOnClickListener(clear_fields);


    }
    catch (Exception e)
    {

    }
}
    private OnClickListener clear_fields= new OnClickListener()
    {
        public void onClick(View v)
        {

        ViewGroup group= (ViewGroup)findViewById(R.id.popuplayout);
            for(int i=0,count=getChildCount(); i<count; ++i)
            {
                View v1= group.getChildAt(i);
                if(v1 instanceof EditText)
                {
                    ((EditText)v1).setText("");
                }
                if(v1 instanceof ViewGroup && (((ViewGroup)v1).getChildCount() > 0))
                    onClick((ViewGroup)v1);
            }
        }
    };
    private OnClickListener cancel_button_click_listener=new OnClickListener()
    {
        public void onClick(View v)
        {
        pw.dismiss();
        }
    };

}

1 个答案:

答案 0 :(得分:0)

你是否在这条线上犯了错误?

ViewGroup group= (ViewGroup)findViewById(R.id.popuplayout);

ViewGroup group= (ViewGroup) layout.findViewById(R.id.popuplayout);//layout is your inflated

我认为你可能需要使用你在布局充气器上调用的值。

无论如何,我想你应该这样做:获取所有编辑文本的参考,然后逐个清除它们。也许保留一系列编辑文本并遍历它们并将它们的文本设置为“”而不是检查类型。