使用可变参数批量设置view显示,隐藏,点击事件

在android中我们经常会遇到要一次给很多view同时设置点击事件,或者在一个case里要显示或者隐藏一批view。
以前,我们是这样的,
findViewById(R.id.text1).setVisibility(View.GONE);
findViewById(R.id.text2).setVisibility(View.GONE);
findViewById(R.id.text3).setVisibility(View.GONE);

现在我们可以这样
ViewUtils.setGone(this,R.id.text1,R.id.text2,R.id.text3);

由于在写代码时候比较爱懒,所以,就偷工减料一下。话不多说写出工具类,和我一样懒的可以试一下。

public class ViewUtils {
/**
* 设置view的显示,参数为可变参数,
* @param views
* 使用 setVisible(text1 ,text2 ,text3 ,text4 )
*/
public static void setVisible(View… views) {
if (views.length <=0)
return;
for (View v : views) {
v.setVisibility(View.VISIBLE);
}
}

/**
 * 重载方法,通过ID设置
 * @param activity
 * @param ids
 * 使用 setVisible(this , R.id.text1, R.id.text2, R.id.text3)
 */
public static void setVisible(Activity activity ,int... ids) {
    if (ids.length<=0 || activity == null)
        return;
    for (int resouce : ids) {
        activity.findViewById(resouce).setVisibility(View.VISIBLE);
    }
}

/**
 * 同理
 * @param view
 * @param ids
 * 使用 setVisible(view , R.id.text1, R.id.text2, R.id.text3)
 */
public static void setVisible(View view ,int... ids) {
    if (ids.length <= 0 || view == null)
        return;
    for (int resouce : ids) {
        view.findViewById(resouce).setVisibility(View.VISIBLE);
    }
}

/**
 * 设置点击事件,不要写匿名内部类
 * @param activity 实现OnClickListener接口
 * @param listener
 * @param id 通过资源ID设置
 * 使用setOnClick(this, this, R.id.text1, R.id.text2, R.id.text3);
 */
public static void setOnClick(Activity activity, View.OnClickListener listener, int... id) {
    if (activity == null || listener == null || id.length <= 0)
        return;
    for (int resouc : id) {
        activity.findViewById(resouc).setOnClickListener(listener);
    }

}

/**
 * 传入view来获取控件
 * @param view
 * @param listener
 * @param id
 */
public static void setOnClick(View view, View.OnClickListener listener, int... id) {
    if (view == null || listener == null || id.length <= 0)
        return;
    for (int resouc : id) {
        view.findViewById(resouc).setOnClickListener(listener);
    }

}
/**
 * 通过view来设置
 * @param listener
 * @param views
 */
public static void setOnClick(View.OnClickListener listener, View... views) {
    if (listener == null || views.length <= 0)
        return;
    for (View view : views) {
        view.setOnClickListener(listener);
    }
}

/**
 * 设置view的隐藏,参数为可变参数,
 * @param views
 */
public static void setGone(View... views) {
    if (views.length <=0)
        return;
    for (View v : views) {
        v.setVisibility(View.GONE);
    }
}

/**
 * 重载方法,通过ID设置
 * @param activity
 * @param ids
 */
public static void setGone(Activity activity ,int... ids) {
    if (ids.length<=0 || activity == null)
        return;
    for (int resouce : ids) {
        activity.findViewById(resouce).setVisibility(View.GONE);
    }
}

/**
 * 同理
 * @param view
 * @param ids
 */
public static void setGone(View view ,int... ids) {
    if (ids.length <= 0 || view == null)
        return;
    for (int resouce : ids) {
        view.findViewById(resouce).setVisibility(View.GONE);
    }
}

/**
 * 设置可点
 * @param views
 */
public static void setCanEnable(View... views){
    for (View view: views) {
        view.setEnabled(true);
    }
}

}
欢迎大家批评指正。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值