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

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

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

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

Android Studio

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

Q&A

解決済

2回答

527閲覧

電卓の表示方法について

piko15671

総合スコア12

Java

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

Android Studio

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

0グッド

0クリップ

投稿2019/01/24 10:33

電卓の表示方法について

わかりにくいとは思いますがお教えいただければ幸いです
Android studioで電卓を作っています(Java)
ソースコードにあるように0が押されたとき0を表示するといったところまでつくりました
1,1と打つと11になるようなコードの書き方がわかりません
ループで+等が入力されるまで回すのかなとも思いましたが書き方がわかりません
自分なりにググってみたのですが解決せずに困っています
ご協力お願いします

Java

1public class MainActivity extends AppCompatActivity { 2 3 @Override 4 protected void onCreate(Bundle savedInstanceState) { 5 super.onCreate(savedInstanceState); 6 setContentView(R.layout.activity_main); 7 } 8 9 public void onClickButton0(View view){ 10 ((TextView)findViewById(R.id.tv)).setText("0"); 11 } 12 13 public void onClickButton1(View view){ 14 ((TextView)findViewById(R.id.tv)).setText("1"); 15 } 16 17 public void onClickButton2(View view){ 18 ((TextView)findViewById(R.id.tv)).setText("2"); 19 } 20 21 public void onClickButton3(View view){ 22 ((TextView)findViewById(R.id.tv)).setText("3"); 23 } 24 25 public void onClickButton4(View view){ 26 ((TextView)findViewById(R.id.tv)).setText("4"); 27 } 28 29 public void onClickButton5(View view){ 30 ((TextView)findViewById(R.id.tv)).setText("5"); 31 } 32 33 public void onClickButton6(View view){ 34 ((TextView)findViewById(R.id.tv)).setText("6"); 35 } 36 37 public void onClickButton7(View view){ 38 ((TextView)findViewById(R.id.tv)).setText("7"); 39 } 40 41 public void onClickButton8(View view){ 42 ((TextView)findViewById(R.id.tv)).setText("8"); 43 } 44 45 public void onClickButton9(View view){ 46 ((TextView)findViewById(R.id.tv)).setText("9"); 47 } 48} 49

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

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

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

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

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

guest

回答2

0

ベストアンサー

まず、Activity側で表示する文字列とTextViewをフィールド変数として保持しておきます。
各ボタンを押すことで文字の追加と、それをTextViewに表示する2つを行います。

java

1public class MainActivity extends AppCompatActivity { 2 3 String number = ""; 4 TextView textView; 5 @Override 6 protected void onCreate(Bundle savedInstanceState) { 7 super.onCreate(savedInstanceState); 8 setContentView(R.layout.activity_main); 9 textView = (TextView)findViewById(R.id.tv); 10 textView.setText("0"); 11 } 12 13 public void onClickButton0(View view){ 14 if (number.equals("")) return; 15 number += "0"; 16 textView.setText(number); 17 } 18 19 public void onClickButton1(View view){ 20 number += "1"; 21 textView.setText(number); 22 } 23 24 // 2以降は1と同じように作ればいい 25}

投稿2019/01/24 14:01

swordone

総合スコア20651

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

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

0

setTextで上書きしているからだと思われます。

Stringで管理してはどうでしょう?

イメージ

String num = ""; public void onClickButton9(View view){ num += "9"; } //描画ループ関数 public void run() { ((TextView)findViewById(R.id.tv)).setText( num ); }

ただし、この場合はじめが表示されなくなりますので、ここはsetTextで初期化する必要があるかと。

投稿2019/01/24 10:42

yukkuri

総合スコア624

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

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

piko15671

2019/01/24 12:17

描画ループ関数とはどうやって使うのですか?
yukkuri

2019/01/24 14:09

すみません、最初のイメージとしてはスレッドのイメージだったのですが、swordoneさんのやっているように追加したあとsetTextのほうが良さそうです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問