1

我是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();
        }
    };

}
4

1 回答 1

0

你在这条线上有错误吗?

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

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

我认为这可能是因为您需要使用您在布局充气机上调用的值。

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

于 2012-06-23T23:49:11.863 回答