一.匿名内部类
1.先找到那个控件(初始化)
private Button bt1 //onCreate方法外
bt1 = (Button)findViewById(R.id.button1)
2.设置事件监听器好搏
bt1.setOnClickListener(new OnClickListener(){
public void onClick(View v){
System.out.println("我的按钮被点击了")
}
})
二.外部类监听点击事件
1.先找到那个控件(初始化)
private Button bt2 //onCreate方法外
bt2 = (Button)findViewById(R.id.button2)
2.设置事裂兆件监听器
bt2.setOnClickListener(new MyOnClickListener(){
public void onClick(View v){
super.onClick(v) //执行父类的onClick
System.out.println("我的按钮被点击了") //执行子类的onClick
}
})
3.在另一友源祥个类中写父类的onClick方法
class MyOnClickListener implements OnClickListener{
public void onClick(View v){
v.setAlpha(0.5) //设置透明的0.5
}
}
//OnClickListener是一个接口
4.点击按钮后会执行服父类的onClick方法和子类的onClick方法,可以让多个按钮都执行相同的父类onClick方法
三.通过实现一个接口的方式实现监听事件
1.先找到那个控件(初始化)
private Button bt3 //onCreate方法外
bt3 = (Button)findViewById(R.id.button3)
2.设置事件监听器
bt3.setOnClickListener(this)
3.让MainActivity.java类实现一个接口
public class MainActivity extends Activity implements OnClickListener{
}
4.在onCreate方法外实现这个接口的要求实现的方法
public void onClick(View v){
System.out.println("第三种方法实现")
}
扩展资料:
如果按钮绑了监听器
按钮点击是通过OnClickListener来实现的
大致的流程应该是这样的
public class MainActivity extends Activity
{
private Button loginButton
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//创建监听器对象
loginButton = (Button) findViewById(R.id.login_btn)
OnClickListener listener = new ButtonClickListener()
loginButton.setOnClickListener(listener)
}
/**
* 监听器类
*/
class ButtonClickListener implements OnClickListener
{
@Override
public void onClick(View v)
{
switch (v.getId())
{
case R.id.login_btn:
//点击后的逻辑处理
break
}
}
}
div侧滑里面是使用以下代码显示遮搏纤罩蒙版的<基罩仿div id="backdrop" class="mui-off-canvas-backdrop"></div>
只需要监听该div的tap事件,即可实现关闷首闭div侧滑菜单并实现自我逻辑。
DOM结构关于mui页面的dom,你需要知道如下规则。
固定栏靠前
所谓的固定栏,也就是带有.mui-bar属性的节点,都是基于fixed定位的元素;常见组件包括:顶部导航栏(.mui-bar-nav)、底部工具条(.mui-bar-footer)、底部选项卡(.mui-bar-tab)这些元素使用时需遵循一个规则:放在.mui-content元素之前,即使是底部工具条和底部选项卡,也要放在.mui-content之前,否则固定栏慎改配会遮住部分主内容;
### 一切内容都要包裹在mui-content中
除了固定栏之外,其它内容都要包裹在.mui-content中,否则就有可能被固定栏遮罩,原因:固定栏基于Fixed定位,不受流式布局限制,普通内容依然会从top:0的位置开始布局,这样就会被固定栏遮罩,mui为了解决这个问题,定义了如下css代码:
[css] view plain copy
.mui-bar-nav ~ .mui-content {
padding-top: 44px
}
.mui-bar-footer ~ .mui-content {
padding-bottom: 44px
}
.mui-bar-tab ~ .mui-content {
padding-bottom: 50px
}
你当然可以通过自定义CSS的方式实现如上类似效果,但为了使用简便,建议将除固定栏之外的所有内容,全部放在.mui-content中。
始终为button按钮添加宽指type属性
若button按钮没有type属性,浏览器默认按照type=submit逻辑处理,这样若将没有type的button放在form表单中,点击按钮就会执行form表单提交,页面就会刷新,用户体验极差。
窗口管理
页面初始化:必须执行mui.init方法
mui在页面初始化时,初始化了很多参数配置,比如:按键监听、手势监听等,因此mui页面都必须调用一次mui.init()方法;
页面跳转:抛弃href跳转
当浏览器加载一个新页面时,若页面DOM尚未渲染完毕,页面会先显示空白,然后等DOM渲染完毕后,再显示具体内容,这是WEB浏览器技术无法逾越的体验障碍;为解决这个问题,建议使用[mui.openWindow方法](http://dcloudio.github.io/mui/javascript/#openwindow)打开一个新的webview,mui会自动监听新页面的loaded事件,若加载完毕,再自动显示新页面;扩展阅读:
hello mui中的无等待窗体切换是如何实现的
提示HTML5的性能体验系列之一 避免切页白屏
页面关闭:勿重复监听backbutton
mui框架自动封装了页面关闭逻辑,若希望自定义返回逻辑(例如编辑页面的返回,需用户确认放弃草稿后再执行返回逻辑),则需要重写mui.back方法,切勿简单通过addEventListener添加backbutton监听,因为addEventListener只会增加新的执行程序,mui默认封装的监听执歼袜行逻辑依然会继续执行,因此若仅addEventListener添加用户确认框,则用户即使选择了取消,也会继续关闭窗口。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)