###前提・実現したいこと
現在、AndroidStudioで、タイマーを作成しています。
15秒ごとに短いバイブを1回。
20秒ごとに短いバイブを2回鳴らすようにしようと考えています。
###発生している問題・エラーメッセージ
ありません。 自分がイメージしているように動作しません。
###該当のソースコード
Java
1package com.example.yutaro0224.counttimer; 2 3import android.os.SystemClock; 4import android.os.Vibrator; 5import android.support.v7.app.AppCompatActivity; 6import android.os.Bundle; 7import android.view.View; 8import android.widget.Button; 9import android.widget.Chronometer; 10 11public class MainActivity extends AppCompatActivity { 12 private Chronometer chronometer; 13 private Button str_btn, stp_btn; 14 private Vibrator vib; 15 private long pattern[] = {1, 30}; //ONとOFFの時間を交互に指定(1ms待って、30ms……) 16 long chr_long=0; 17 18 @Override 19 protected void onCreate(Bundle savedInstanceState) { 20 super.onCreate(savedInstanceState); 21 setContentView(R.layout.activity_main); 22 23 str_btn = (Button)findViewById(R.id.start_button); 24 stp_btn = (Button)findViewById(R.id.stop_button); 25 chronometer = (Chronometer) findViewById(R.id.chronometer); 26 vib = (Vibrator)getSystemService(VIBRATOR_SERVICE); 27 28 str_btn.setOnClickListener(new View.OnClickListener(){ 29 @Override 30 public void onClick(View v){ 31 chronometer.setBase(SystemClock.elapsedRealtime()); //リセット 32 chronometer.start(); //動く 33 34 chr_long = chronometer.getBase(); 35 if(chr_long%5 == 0){ 36 vib.vibrate(500); 37 }else if(chr_long%10 == 0) { 38 vib.vibrate(500); 39 vib.vibrate(500); 40 } 41 } 42 }); 43 44 45 46 stp_btn.setOnClickListener(new View.OnClickListener(){ 47 @Override 48 public void onClick(View v){ 49 chronometer.stop();//止まる 50 } 51 }); 52 } 53} 54
###該当のソースコード
XML
1<?xml version="1.0" encoding="utf-8"?> 2<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:id="@+id/activity_main" 5 android:layout_width="match_parent" 6 android:layout_height="match_parent" 7 android:padding="20dp" 8 android:orientation="vertical" 9 android:gravity="center" 10 tools:context="com.example.yutaro0224.counttimer.MainActivity"> 11 12 <Chronometer 13 android:id="@+id/chronometer" 14 android:textSize="60sp" 15 android:textColor="#00f" 16 android:layout_margin="20dp" 17 android:layout_width="wrap_content" 18 android:layout_height="wrap_content" 19 android:text="PetyaKutya" 20 /> 21 22 <Button 23 android:text="Start" 24 android:id="@+id/start_button" 25 android:layout_margin="10dp" 26 android:layout_width="match_parent" 27 android:layout_height="wrap_content" 28 /> 29 30 <Button 31 android:text="Stop" 32 android:id="@+id/stop_button" 33 android:layout_margin="10dp" 34 android:layout_width="match_parent" 35 android:layout_height="wrap_content" 36 /> 37</LinearLayout> 38
###課題に対してアプローチしたこと
Chronomaterに表示しているテキストを数値に変換し、
変換した数値を if 文で分岐処理させ、
特定の秒数でバイブレーションさせるというのを考えてコーディングしました。
何か別のメソッドに分けてコーディングしたほうが良いのでしょうか?
###補足情報(言語/FW/ツール等のバージョンなど)
AndroidStudio 2.2
1年間Cを学習していました。
次はJavaを学習し、Androidアプリ制作をしようと思った次第です。
Javaの学習は「よくわかるJava(著:川場隆)」という本を一通りした程度です。
基礎が欠けているところがありましたら教えて頂けると幸いです。
宜しくお願い致します!
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。