質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

1055閲覧

一定の間隔で取得した時間データをcsvに書き込みたい

yashiromisa

総合スコア11

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2020/06/15 07:29

###やりたいこと
200ms毎に時間を取得し、csvに追記するプログラムを作りたいです。

取得開始~終了タイミングは特に指定していない為、アプリを起動してから終了させるまでひたすら時間を取得して一定の間隔で書き込み続けることになると思いますが、一定間隔で処理を実行するテスト用に作成したものなのでその点はあまり重要視していません。

ただし、それが原因となっておかしくなっている場合はご指摘願いたいです。

起きている問題

handler.post(runnable);の部分でシンボル”post”が解決できませんというメッセージとともに波線が出ているのですが、runnebleのスコープ範囲内で呼び出しを行っていると思うのでなぜ解消されないのかわかりません。

この方の記事を参考にしています
Qiita Androidで処理を指定した時間間隔ごとに実行するコードのフォーマットを記載します。

コード

java

1package to.msn.wings.csvsavetest; 2 3import androidx.appcompat.app.AppCompatActivity; 4import java.io.FileOutputStream; 5import java.util.Calendar; 6import java.text.SimpleDateFormat; 7import android.content.Context; 8import android.os.Bundle; 9import android.os.Handler; 10 11public class MainActivity extends AppCompatActivity { 12 13 String filename = "Test.csv"; 14 String output = "date\n"; 15 16 @Override 17 protected void onCreate(Bundle savedInstanceState) { 18 super.onCreate(savedInstanceState); 19 setContentView(R.layout.activity_main); 20 } 21 22 23 Handler handler = new Handler(); 24 Runnable runnable = new Runnable(){ 25 public void run() { 26 writeData(); 27 handler.removeCallbacks(runnable); 28 handler.postDelayed(runnable,200); 29 30 } 31 }; 32 handler.post(runnable);//runメソッドの初回呼び出し用、2回目以降はrun内のpostDelayedで実行 33 34 35 public void writeData(){//ファイルに書き込むメソッド 36 37 Calendar c = Calendar.getInstance(); 38 SimpleDateFormat sdf = new SimpleDateFormat("yy.MM.dd_HH:mm:ss:SSS");//日付の表示形式を設定(フォーマットを設定) 39 output += sdf.format(c.getTime()+"\n"); 40 41 FileOutputStream outputStream; 42 try { 43 outputStream = openFileOutput(filename, Context.MODE_PRIVATE); 44 outputStream.write(output.getBytes()); 45 outputStream.close(); 46 } catch (Exception e) { 47 e.printStackTrace(); 48 } 49 } 50} 51

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2020/06/15 08:25

handler.post(runnable); のような処理 (メソッド呼び出しなど) は、何らかのメソッドの中に書く必要があります。(handler と runnable を作ってるのはフィールドの初期値なのでコンパイルが通ります。)
yashiromisa

2020/06/15 16:38

ボタンを追加してOnClickメソッド内に配置したところ解消されました。ありがとうございます。
guest

回答1

0

自己解決

ボタンを追加してOnClickメソッド内に配置したところ解消されました。

投稿2020/06/15 16:38

yashiromisa

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問