例如,如果我有:
EditText A;
TextView B;
ImageView C;
我想将他们的所有可见性设置为View.GONE
,我怎样才能以这样的方式来实现呢?
A.setVisibility(View.GONE);
B.setVisibility(View.GONE);
C.setVisibility(View.GONE);
我这样做:
groupD.setVisibility(View.GONE);
无需将所有这些内容放在一个RelativeLayout
中,然后将RelativeLayout
设置为View.GONE
?是否有Java类?或者我必须为它获得一个库?
如果没有,我可以手动完成,这样我就能组织有30个视图的项目吗?我不想将每个组设置为自己的RelativeLayout
,因为所有视图都相互依赖。
答案 0 :(得分:3)
使用ButterKnife即可:
@BindViews({ R.id.A, R.id.B, R.id.C })
List<View> views;
ButterKnife.apply(views, VISIBLE);
ButterKnife.apply(views, GONE);
//Action and Setter interfaces allow specifying simple behavior.
static final ButterKnife.Action<View> VISIBLE = new ButterKnife.Action<View>() {
@Override public void apply(View view, int index) {
view.setVisibility(View.VISIBLE);
}
};
static final ButterKnife.Action<View> GONE = new ButterKnife.Action<View>() {
@Override public void set(View view, int index) {
view.setVisibility(View.GONE);
}
};
改编自网站的例子
答案 1 :(得分:0)
最好的方法是将视图传递给单个方法。所有这些都是Views,所以你可以这样做。
public void setViews(View view){
view.setVisibility(View.GONE);
}
并调用这样的方法:
setViews(editText);