我正在开发一个 android termostat 应用程序,并且我已经列出了一组项目(在代码中)。因此我动态添加按钮。当用户单击其中一个按钮时,我希望删除所有具有相同父级(LinearLayout)的视图。
我怎样才能编写一段代码来做到这一点?
在我创建此“条目”的代码下方。
private void createEntry(int entry){
TableLayout my_root = (TableLayout) findViewById(R.id.day_root);
LinearLayout A = new LinearLayout(this);
A.setOrientation(LinearLayout.HORIZONTAL);
A.setId(DYN_LAYOUT_ID + entry);
ImageView im1 = new ImageView(this);
ImageView im2 = new ImageView(this);
im1.setImageResource(R.drawable.sun_small);
im2.setImageResource(R.drawable.moon_small);
TextView tv = new TextView(this);
Button btn = new Button(this);
btn.setText("remove");
tv.setText(new StringBuilder().append(pad(sHour)).append(":").append(pad(sMinute))
.append(" - ").append(pad(eHour)).append(":").append(pad(eMinute)));
tv.setTextSize(20);
A.addView(im1);
A.addView(tv);
A.addView(im2);
A.addView(btn);
my_root.addView(A);
}
编辑:我的初始尝试似乎确实解决了问题(更新了上述代码的一部分)
Button btn = new Button(this);
btn.setId(BUTTON_ID + entry);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int row = v.getId() - BUTTON_ID;
LinearLayout ll = (LinearLayout) findViewById(DYN_LAYOUT_ID + row);
ll.removeAllViewsInLayout();
}
});
点击 btn 时,所有属于该 Button 所属 LinearLayout 的视图都会被移除。