1.之前我编写的代码是如下:

 1 package com.himi.vibrate;  2  3 import android.app.Activity;  4 import android.app.Service;  5 import android.content.res.AssetManager;  6 import android.graphics.Typeface;  7 import android.os.Bundle;  8 import android.os.Vibrator;  9 import android.view.View; 10 import android.view.View.OnClickListener; 11 import android.widget.Button; 12 13 public class MainActivity extends Activity implements OnClickListener { 14     private Button btnLow; 15     private Button btnNormal; 16     private Button btnFast; 17     18  Vibrator vibrator; 19 20  @Override 21     public void onCreate(Bundle savedInstanceState) { 22         super.onCreate(savedInstanceState); 23  setContentView(R.layout.activity_main); 24         25         vibrator = (Vibrator)getSystemService(Service.VIBRATOR_SERVICE); 26         27         btnLow = (Button) findViewById(R.id.btnlow); 28         btnNormal = (Button) findViewById(R.id.btnnormal); 29         btnFast = (Button) findViewById(R.id.btnfast); 30 //下面这五行代码是实现button上面的文字显示楷体,不用理会31         32         AssetManager mgr = getAssets(); 33         Typeface tf = Typeface.createFromAsset(mgr, "fonts/DroidSansFallback.ttf"); 34         35  btnLow.setTypeface(tf); 36  btnNormal.setTypeface(tf); 37  btnFast.setTypeface(tf); 38 39 } 40 41  @Override 42     public void onClick(View v) { 43         if (v.equals(btnLow)) { 44             vibrator.vibrate(new long[] {1000,30,100,1000},0); 45  } 46         if (v.equals(btnNormal)) { 47             48             vibrator.vibrate(new long[] {800,40,400,30},0); 49  } 50         if (v.equals(btnFast)) { 51             vibrator.vibrate(new long[] {30,100,20,50},0); 52  } 53 54  } 55 56 protected void onStop() { 57         if(null!=vibrator){ 58  vibrator.cancel(); 59  } 60         super.onStop(); 61  } 62 }

2.后来才知道原来问题是如此简单,修改完的代码如下:

 1 package com.himi.vibrate;  2  3 import android.app.Activity;  4 import android.app.Service;  5 import android.content.res.AssetManager;  6 import android.graphics.Typeface;  7 import android.os.Bundle;  8 import android.os.Vibrator;  9 import android.view.View; 10 import android.view.View.OnClickListener; 11 import android.widget.Button; 12 13 public class MainActivity extends Activity implements OnClickListener { 14     private Button btnLow; 15     private Button btnNormal; 16     private Button btnFast; 17     18  Vibrator vibrator; 19 20  @Override 21     public void onCreate(Bundle savedInstanceState) { 22         super.onCreate(savedInstanceState); 23  setContentView(R.layout.activity_main); 24         25         vibrator = (Vibrator)getSystemService(Service.VIBRATOR_SERVICE); 26         27         btnLow = (Button) findViewById(R.id.btnlow); 28         btnNormal = (Button) findViewById(R.id.btnnormal); 29         btnFast = (Button) findViewById(R.id.btnfast); 30         31         AssetManager mgr = getAssets(); 32         Typeface tf = Typeface.createFromAsset(mgr, "fonts/DroidSansFallback.ttf"); 33         34  btnLow.setTypeface(tf); 35  btnNormal.setTypeface(tf); 36  btnFast.setTypeface(tf); 37         38         //之前没有加这3条语句,振动服务是没有响应的。后来发现这是语法没有弄清楚,我就是个傻逼39         btnFast.setOnClickListener(this);//监听当前MainActivity 40         btnNormal.setOnClickListener(this);//监听当前MainActivity 41         btnLow.setOnClickListener(this);//监听当前MainAcitivity 42         43  } 44 45  @Override 46     public void onClick(View v) { 47         if (v.equals(btnLow)) { 48             vibrator.vibrate(new long[] {1000,30,100,1000},0); 49  } 50         if (v.equals(btnNormal)) { 51             52             vibrator.vibrate(new long[] {800,40,400,30},0); 53  } 54         if (v.equals(btnFast)) { 55             vibrator.vibrate(new long[] {30,100,20,50},0); 56  } 57 58  } 59 60     61     protected void onStop() { 62         if(null!=vibrator){ 63  vibrator.cancel(); 64  } 65         super.onStop(); 66  } 67 }

3.总结

这里是MainAcitivity实现了OnClickListener接口,所以接口监听功能是属于当前MainActivity的,所以是要监听当前MainActivity的:

语法格式如下:

public class MainActivity extends Activity implements OnClickListener {

………………

public void onCreate(Bundle savedInstanceState) {

…………

btn1 = (Button) findViewById(R.id.button1);

btn1.setOnClickListener(this);//监听当前Acitivity,当然这里监听的就是MainActivity

}

public void onClick(View v) {

if (v.equals(btn1)) {

…………

}

……………………

}

更多相关文章

  1. android studio 3.1.1 创建项目编译不过的问题解决
  2. android studio ndk开发遇到的问题
  3. Android中的DownloadManager
  4. android spinner自动弹出列表,设置title,TtextView不换行自动截取
  5. Android(安卓)Studio启动DDMS
  6. Android的版本(Version)和API-level的对应关系
  7. Android(安卓)判断当前网络 wifi ctwap(cmwap) ctnet(cmnet)
  8. android studio 3.0 升级 项目遇到的问题更改
  9. android访问mysql增删改查_Android(安卓)Studio连接数据库实现增

随机推荐

  1. 关于android:configChanges="keyboardHid
  2. 界面背景渐变色
  3. Android(安卓)Studio快速上手
  4. android之两种设置全屏或者无标题的方法
  5. Android(安卓)Fragment---管理Fragment
  6. Android中对文件保存、读取和删除操作的
  7. android如何完全退出应用程序
  8. Android(安卓)RemoteCallbackList类
  9. Android(安卓)Material Design-Creating
  10. 博文目录 | 杰瑞教育原创系列文章目录一