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

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

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

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

解決済

ボタンを押されるたびに初期化するのをなんとかしたい

syosinsya109
syosinsya109

総合スコア29

Java

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

2回答

0リアクション

0クリップ

372閲覧

投稿2022/09/06 12:52

編集2022/09/07 06:55

前提

javaについて質問します。
android studioで電卓のアプリを作っており、一番最初にArrayListを初期化し、ボタンを押されるたびにその配列に値を追加しようと思っています。しかしどこに初期化文を入れてもボタンを押されるたびに初期化されてしまい、またtrycatchなどを入れて1回しか初期化しないようにしたとしてもArrayListを定義されていないみたいなエラーが出てきてしまいどうしてもできません。正しい初期化方法を教えてください。

該当のソースコード

java

private class ButtonClickListener implements View.OnClickListener{ ArrayList<String> num = new ArrayList<String>(); ArrayList<String> print = new ArrayList<String>(); @Override public void onClick(View view) { //formulaは計算を表示する部分、resultは計算結果を表示する部分 TextView formula = findViewById(R.id.formula); TextView answer = findViewById(R.id.result); //zeroは0を出力するボタン、oneは1を出力するボタン if (view.getId() == R.id.zero) { num.add("0"); print.add("0"); }else if (view.getId() == R.id.one) { num.add("1"); print.add("1"); } 以下省略 for(String value : print){ answer.setText(value); } System.out.println(print); System.out.println(num); //結果は押されるたびに初期化されるので押された数字のみが代入される } } }

試したこと

初期化の位置を変えたり、if文やtrycatchを使用してみたが、初期化されていないというエラーが出てきたり、ボタンを押すたびに初期化されたりして自力では解決できなかった。
ネットでもそれらしき回答が得られなかった

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

android studioを使い始めて間もないのでバージョンの確認方法がわかりません。それも教えてくれると嬉しいです。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

BeatStar

2022/09/06 13:13

違うところで書き換わっていたりして…
jimbe

2022/09/06 13:43

配列が見当たりません。
dodox86

2022/09/06 17:12

「配列」や「初期化」、用語の使い方が誤っていると見えて、話が一部噛み合っていないようです。ボタンを押すたびに値は追加されていってはいますが表示の仕方に問題があるでしょう。この点については回答を既にいただいていますね。
syosinsya109

2022/09/07 01:58

どのような配列が見当たらないのでしょうか。 numとprint配列は数値のボタンが押される度にaddメソッドで追加しています。 それかListは配列では無いのでしょうか。それなら自分の間違いです。すいません。
syosinsya109

2022/09/07 06:56

無知ですいません。配列ではなくArrayListです。間違いを訂正しました。 指摘ありがとうございました

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

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

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

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Java

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