android 为layout添加点击事件以及封装onclicklistener工具类
2015-12-16 19:32
495 查看
最近做的项目里需要用到layout点击事件,其实非常简单,只要为需要点击的layout设置一个id,并像按钮一样调用就行了
public class youqing extends Activity {
private LinearLayout youqing1,youqing2,youqing3,youqing4,youqing5,youqing6,youqing7,youqing8;
private ImageButton back1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.youqing);
youqing1 = (LinearLayout) findViewById(R.id.youqing1);
youqing2 = (LinearLayout) findViewById(R.id.youqing2);
youqing3 = (LinearLayout) findViewById(R.id.youqing3);
youqing4 = (LinearLayout) findViewById(R.id.youqing4);
youqing5 = (LinearLayout) findViewById(R.id.youqing5);
youqing6 = (LinearLayout) findViewById(R.id.youqing6);
youqing7 = (LinearLayout) findViewById(R.id.youqing7);
youqing8 = (LinearLayout) findViewById(R.id.youqing8);
back1 = (ImageButton) findViewById(R.id.back1);
youqing1.setOnClickListener(new onclicklistener());
youqing2.setOnClickListener(new onclicklistener());
youqing3.setOnClickListener(new onclicklistener());
youqing4.setOnClickListener(new onclicklistener());
youqing5.setOnClickListener(new onclicklistener());
youqing6.setOnClickListener(new onclicklistener());
youqing7.setOnClickListener(new onclicklistener());
youqing8.setOnClickListener(new onclicklistener());
back1.setOnClickListener(new onclicklistener());
}
}
但是太多个点击区域就会使点击事件设置得频繁,当需要做的事情重复发生时,我们就可以使用面向对象的方法来解决问题,把点击事件的动作封装成一个工具类,需要的使用直接调用传入参数即可
<pre name="code" class="java">public class onclicklistener implements OnClickListener {
/*页面跳转函数*/public static void showActivity(Context context,Class<?> cls){Intent intent =new Intent(context,cls);context.startActivity(intent);}@Overridepublic void onClick(View v) {Context context = v.getContext();switch(v.getId()){case R.id.jieshu:/*showActivity(context,
jieshu.class);*/break;case R.id.dianzi:Toast toast = Toast.makeText(context, "显示一个出现在屏幕中央的Toast", Toast.LEN
4000
GTH_SHORT);toast.setGravity(Gravity.CENTER, 0, 0);toast.show();break;case R.id.back:((Activity) context).finish();
/*实现返回功能*/}}}
public class youqing extends Activity {
private LinearLayout youqing1,youqing2,youqing3,youqing4,youqing5,youqing6,youqing7,youqing8;
private ImageButton back1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.youqing);
youqing1 = (LinearLayout) findViewById(R.id.youqing1);
youqing2 = (LinearLayout) findViewById(R.id.youqing2);
youqing3 = (LinearLayout) findViewById(R.id.youqing3);
youqing4 = (LinearLayout) findViewById(R.id.youqing4);
youqing5 = (LinearLayout) findViewById(R.id.youqing5);
youqing6 = (LinearLayout) findViewById(R.id.youqing6);
youqing7 = (LinearLayout) findViewById(R.id.youqing7);
youqing8 = (LinearLayout) findViewById(R.id.youqing8);
back1 = (ImageButton) findViewById(R.id.back1);
youqing1.setOnClickListener(new onclicklistener());
youqing2.setOnClickListener(new onclicklistener());
youqing3.setOnClickListener(new onclicklistener());
youqing4.setOnClickListener(new onclicklistener());
youqing5.setOnClickListener(new onclicklistener());
youqing6.setOnClickListener(new onclicklistener());
youqing7.setOnClickListener(new onclicklistener());
youqing8.setOnClickListener(new onclicklistener());
back1.setOnClickListener(new onclicklistener());
}
}
但是太多个点击区域就会使点击事件设置得频繁,当需要做的事情重复发生时,我们就可以使用面向对象的方法来解决问题,把点击事件的动作封装成一个工具类,需要的使用直接调用传入参数即可
<pre name="code" class="java">public class onclicklistener implements OnClickListener {
/*页面跳转函数*/public static void showActivity(Context context,Class<?> cls){Intent intent =new Intent(context,cls);context.startActivity(intent);}@Overridepublic void onClick(View v) {Context context = v.getContext();switch(v.getId()){case R.id.jieshu:/*showActivity(context,
jieshu.class);*/break;case R.id.dianzi:Toast toast = Toast.makeText(context, "显示一个出现在屏幕中央的Toast", Toast.LEN
4000
GTH_SHORT);toast.setGravity(Gravity.CENTER, 0, 0);toast.show();break;case R.id.back:((Activity) context).finish();
/*实现返回功能*/}}}
相关文章推荐
- Android绘图之绘制太极图
- Android ListView分类/分组效果 - 第二种实现方式
- Android蓝牙开发经验总结(一)
- 关于Android 设置监听的的四种方式的理解
- android之Listview的分组实现
- 关于Android 回调的小的案例
- Android gdb 调试
- Android倒计时(ListView/Gridview中多个倒计时同时进行)
- android-Android的actionBar的使用
- 从零开始快速搭建Android应用自动化测试(一)
- android中fragment与activity之间通信原理以及例子
- Mat工具查看内存泄露和内存溢出情况
- android 的injustdecodebounds
- android 几类开源框架
- Android 通知栏Notification的整合
- Android Slide Menu相关
- android 实现自定义卫星菜单
- android 动画效果 activity 和popwindows
- Android VectorDrawable与SVG
- 自定义View音量调节