我是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();
}
};
}
答案 0 :(得分:0)
你是否在这条线上犯了错误?
ViewGroup group= (ViewGroup)findViewById(R.id.popuplayout);
ViewGroup group= (ViewGroup) layout.findViewById(R.id.popuplayout);//layout is your inflated
我认为你可能需要使用你在布局充气器上调用的值。
无论如何,我想你应该这样做:获取所有编辑文本的参考,然后逐个清除它们。也许保留一系列编辑文本并遍历它们并将它们的文本设置为“”而不是检查类型。