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

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

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

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

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

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

Q&A

解決済

2回答

2692閲覧

計算結果を次回起動時にも保持していたい

ra3jp

総合スコア21

Java

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

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

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

0グッド

0クリップ

投稿2016/12/05 08:09

クイズアプリの結果画面で、平均値と合計点を表示したいと思っています。
合計点は0〜200点ほどの数値が毎回出ます。

例)クイズアプリを行った51人目の人。
結果画面には、その人の合計点と、
過去の50人分+その人点=合計点
合計点/データの数(51人) として求めた平均点の2つを表示したいです。

次に52人目の人がクイズアプリを行った場合、
過去の51人分+その人の点=合計点
合計点/データの数(52人分) として、平均点を求めていきたいです。

わからないこと

java

1 int[] a = { 1, 2, 3, 4, 5 };

として、最初から入力しておく方法はわかるのですが、
毎回変動していくものをどう読み込んでいけば良いのかがわかりません。

外部ファイルの読み込み、計算、外部ファイルへの書き出しと行うのでしょうか?
よろしくお願いします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

[Android] アプリ内にファイルを保存する
上記を参考にして以下をimportし

java

1import android.content.Context; 2import android.support.v7.app.AppCompatActivity; 3import android.os.Bundle; 4import android.view.View; 5import android.widget.Button; 6import android.widget.EditText; 7import android.widget.TextView; 8import java.io.BufferedReader; 9import java.io.FileInputStream; 10import java.io.FileOutputStream; 11import java.io.IOException; 12import java.io.InputStreamReader;

以下のメソッドを追加して

java

1 public void saveFile(String file, int st) {//終了時にfileに保存ファイル名、stに合計点を入れて 2//呼び出す ファイルに追加で新しい点数が改行されて保存される 3 String str = "" + st; 4 FileOutputStream fileOutputstream = null; 5 try { 6 fileOutputstream = openFileOutput(file, Context.MODE_APPEND); 7 fileOutputstream.write(str.getBytes()); 8 fileOutputstream.write(13); 9 fileOutputstream.write(10); 10 } catch (IOException e) { 11 e.printStackTrace(); 12 } 13 } 14 15 public int[] readFile(String file) {//ファイル名を因数に入れて呼び出すと戻り値のint配列の 16//[0]に合計点数の累積合計が、[1]にこれまでの人数が入っているので割り算で平均点が出せる 17 FileInputStream fileInputStream; 18 String text = null; 19 int a[] = new int[2]; 20 try { 21 fileInputStream = openFileInput(file); 22 String lineBuffer = null; 23 24 25 BufferedReader reader = new BufferedReader(new InputStreamReader( 26 fileInputStream, "UTF-8")); 27 while ((lineBuffer = reader.readLine()) != null) { 28 text = lineBuffer; 29 try { 30 int c = Integer.parseInt(text); 31 a[0] += c; 32 a[1] += 1; 33 } catch (Exception e) { 34 35 } 36 37 } 38 } catch (IOException e) { 39 e.printStackTrace(); 40 } 41 return a; 42 }

実行すれば目的の値が出せるのではないでしょうか

投稿2017/01/10 10:06

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

プリファレンスに下記を保存しておけばできますね。
・合計得点
・回答者人数

回答者の名前や日時も保存しておきたいならデータベースに保存するべきですね。

投稿2016/12/05 08:29

yona

総合スコア18155

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.51%

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

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

質問する

関連した質問