您的位置:首页 > 移动开发 > Android开发

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

2016-09-10 09:19 531 查看
在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);
}
}


}

欢迎大家批评指正。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐