public void Add_text() {
ll.setOrientation(LinearLayout.HORIZONTAL);
ll.setId(i);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
TextView product = new TextView(getActivity());
product.setText(" Product" + 5 + " ");
ll.addView(product);
EditText qty = new EditText(getActivity());
qty.setText(i + "");
qty.setId(i);
qty.setWidth(120);
ll.addView(qty);
Button btn = new Button(getActivity());
ll.addView(btn);
btn.setLayoutParams(params);
btn.setOnClickListener(o);
ly.addView(ll);
i++;
}
我编写了上面的代码来动态创建文本域和按钮;但是现在我需要在单击按钮时删除2个文本字段和一个按钮。我该怎么做?
答案 0 :(得分:4)
请尝试以下代码。
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
LinearLayout linearParent = (LinearLayout) v.getParent().getParent();
LinearLayout linearChild = (LinearLayout) v.getParent();
linearParent.removeView(linearChild);
}
});
<强>解释强>
答案 1 :(得分:0)
如果您想永久删除您创建的视图。
OnClick(View view){
ly.removeAllViews()
}
如果您不想永久删除自己创建的视图。
OnClick(View view){
ly.setVisibility(View.GONE); //This will hide the all views
qty.setVisibility(View.GONE);//This will hide the EditText qty
product .setVisibility(View.GONE);//This will hide the TextView product
}
请使用您想要的相应代码行。
修改强>
根据您的具体情况使用此代码:
public void Add_text() {
ll.setOrientation(LinearLayout.HORIZONTAL);
ll.setId(i);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
TextView product = new TextView(getActivity());
product.setText(" Product" + 5 + " ");
ll.addView(product);
EditText qty = new EditText(getActivity());
qty.setText(i + "");
qty.setId(i);
qty.setWidth(120);
ll.addView(qty);
Button btn = new Button(this);
ll.addView(btn);
btn.setLayoutParams(params);
ly.addView(ll);
i++;
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View button) {
qty.setVisibility(View.GONE);//This will hide the EditText qty
product .setVisibility(View.GONE);//This will hide the TextView product
}
});
}
答案 2 :(得分:0)
我认为你必须在LinearLayout上使用这个方法:
public void removeView (View view)
先打电话给你:EditText et = (EditText)linearLayout.findViewById(yourEditText.getId());
然后调用remove view方法:
linearLayout.removeView (et) ;
并删除LinearLayout中的所有视图,执行以下操作:
如下:
linearLayout.removeAllViews()
并给我一些反馈
希望有助于。
答案 3 :(得分:0)
您只需在所选按钮的qty.setVisibility(View.GONE)
上使用onClickListener()
即可。像这样。
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
qty.setVisibility(View.GONE); //for temporary purpose
//or u can also do this
layout.removeView(qty); //removes permanently
}
});
使用View.GONE
的好处是,如果需要,可以返回View,但layout.removeView(qty)
将永久删除视图,您必须重新添加视图。
[编辑] 1.由于解释原因here
View.GONE
而不是View.INVISIBLE
希望我回答你的问题。 :)
答案 4 :(得分:0)
只使用要从线性布局中删除视图的索引
Linearlayout.removeViewAt();
如果你想再次查看那个视图,那么你可以用同样的方式调用addViewAt()。
我希望它会对你有所帮助。
答案 5 :(得分:0)
添加此行
{{1}}