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

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

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

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Android Studio

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

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

0回答

1411閲覧

Android studioのkotlinでアプリから外部ストレージへcsvファイルを出力する方法

Shinya2222

総合スコア4

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Android Studio

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

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

1クリップ

投稿2019/10/10 06:13

前提・実現したいこと

プログラミング初心者です。Android studio 3.5.1を使っています。
アンケートに使用するツールとしてアプリを作りたいと思っています。
シークバーを操作してもらい、その値を1秒間隔等の時刻とセットでcsvファイルに保存したいです。

発生している問題・エラーメッセージ

このサイトや他のサイトを参考にして作り始めて丸3日が経ちました。
コピペ等でなんとかシークバー等の配置ができましたが、
保存用ファイルが作成されません。(どこに作られたかがわかっていません。)
現時点ではシークバー1を操作すると強制終了します。

該当のソースコード

kotlin

1@file:Suppress("UNREACHABLE_CODE", "DEPRECATION") 2 3package com.example.myapplication 4 5import android.content.pm.PackageManager 6import android.os.Build 7import android.os.Bundle 8import android.os.Environment 9import android.widget.SeekBar 10import androidx.annotation.RequiresApi 11import androidx.appcompat.app.AppCompatActivity 12import kotlinx.android.synthetic.main.activity_main.* 13import java.io.BufferedWriter 14import java.io.FileWriter 15import java.io.PrintWriter 16 17@Suppress("NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS") 18class MainActivity : AppCompatActivity() { 19 20 @RequiresApi(Build.VERSION_CODES.M) 21 override fun onCreate(savedInstanceState: Bundle?) { 22 // パーミッション未許可の時 23 if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED || 24 checkSelfPermission(android.Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { 25 // パーミッションの許可ダイアログの表示 26 requestPermissions( 27 arrayOf( 28 android.Manifest.permission.WRITE_EXTERNAL_STORAGE, 29 android.Manifest.permission.READ_EXTERNAL_STORAGE 30 ), 0 31 ) 32 } 33 super.onCreate(savedInstanceState) 34 setContentView(R.layout.activity_main) 35 //シークバー1のデータ取得 36 seekBar1.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener { 37 override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { 38 val sens1: Int = progress 39 val sens1list: ArrayList<Int> = ArrayList() 40 textView5.text = sens1.toString() //テキストに出力 41 //新規ファイル作成 42 val fw = FileWriter(Environment.getExternalStorageDirectory().getPath() + "/measured.csv") 43 //書き出し 44 val pw = PrintWriter(BufferedWriter(fw)) 45 pw.print("sens1") 46 pw.print(sens1list) 47 pw.println() 48 pw.close() 49 } 50 override fun onStartTrackingTouch(seekBar: SeekBar) {} 51 override fun onStopTrackingTouch(seekBar: SeekBar) {} 52 }) 53 //シークバー2のデータ取得 54 seekBar2.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener { 55 override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { 56 val sens2: Int = progress 57 textView8.text = sens2.toString() //テキストに出力 58 } 59 override fun onStartTrackingTouch(seekBar: SeekBar) {} 60 override fun onStopTrackingTouch(seekBar: SeekBar) {} 61 }) 62 //シークバー3のデータ取得 63 seekBar3.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener { 64 override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { 65 val sens3: Int = progress 66 textView9.text = sens3.toString() //テキストに出力 67 } 68 override fun onStartTrackingTouch(seekBar: SeekBar) {} 69 override fun onStopTrackingTouch(seekBar: SeekBar) {} 70 }) 71 //シークバー4のデータ取得 72 seekBar4.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener { 73 override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { 74 val sens4: Int = progress 75 textView4.text = sens4.toString() //テキストに出力 76 } 77 override fun onStartTrackingTouch(seekBar: SeekBar) {} 78 override fun onStopTrackingTouch(seekBar: SeekBar) {} 79 }) 80 } 81} 82 83

Androidmanifest

1<?xml version="1.0" encoding="utf-8"?> 2<manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 package="com.example.myapplication"> 4 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 5 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 6 7 <application 8 android:allowBackup="true" 9 android:icon="@mipmap/ic_launcher" 10 android:label="@string/app_name" 11 android:roundIcon="@mipmap/ic_launcher_round" 12 android:supportsRtl="true" 13 android:theme="@style/AppTheme"> 14 <activity android:name=".MainActivity"> 15 <intent-filter> 16 <action android:name="android.intent.action.MAIN" /> 17 18 <category android:name="android.intent.category.LAUNCHER" /> 19 </intent-filter> 20 </activity> 21 </application> 22 23</manifest>

試したこと

getExternalStorageDirectoryが非推奨らしいので他の方法も試しましたがよくわからず、現在の状態に戻しています。

補足情報(FW/ツールのバージョンなど)

参考にしたウェブページ
https://teratail.com/questions/168541
https://akira-watson.com/android/external-storage-file.html

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問