Android(java)學習筆記113:Android編寫代碼調用Vibrator震動功能,按下按鈕button始終沒有震動

來源:互聯網
上載者:User

標籤:

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     @Override21     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     @Override42     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     @Override21     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);//監聽當前MainActivity40         btnNormal.setOnClickListener(this);//監聽當前MainActivity41         btnLow.setOnClickListener(this);//監聽當前MainAcitivity42         43     }44 45     @Override46     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)) {

                 …………

      }

 

……………………

}

Android(java)學習筆記113:Android編寫代碼調用Vibrator震動功能,按下按鈕button始終沒有震動

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.