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

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

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

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

Android

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

Android Studio

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

Q&A

解決済

1回答

400閲覧

androidでアプリについて

bake

総合スコア13

Java

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

Android

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

Android Studio

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

0グッド

0クリップ

投稿2019/07/05 17:18

編集2020/01/07 15:10

androidで電卓を作っています。xmlで数字+-×÷c=のボタンを作成しました。
下記の実装で加算までのコードを書いてみたところで実行してボタンを押すと数値が入力されるところまで出来ました。
① イコールの実装がどう書いたら良いかわかりません。
② イコールのコードを書けば//加算のコードで加算できるようになりますでしょうか?
よろしくおねがいします。

java

1package com.example.myapplication; 2 3import android.app.Activity; 4 5import android.support.v7.app.AppCompatActivity; 6import android.os.Bundle; 7import android.view.View; 8import android.webkit.WebView; 9import android.webkit.WebViewClient; 10import android.widget.Button; 11import android.widget.EditText; 12import android.widget.LinearLayout; 13import android.widget.TextView; 14import android.widget.Toolbar; 15 16public class MainActivity extends AppCompatActivity { 17 18 TextView display; 19 Button button[]; 20 double num1; 21 double num2; 22 double total; 23 Button pbutton; 24 25 int numId[] = {R.id.button0, R.id.button1, R.id.button2, R.id.button3, R.id.button4, R.id.button5, R.id.button6, R.id.button7, R.id.button8, R.id.button9}; 26 27 @Override 28 protected void onCreate(Bundle savedInstanceState) { 29 super.onCreate(savedInstanceState); 30 setContentView(R.layout.activity_main); 31 32 display = (TextView) findViewById(R.id.result); 33 34 button = new Button[numId.length]; 35 36 for (int i = 0; i < numId.length; i++) { 37 button[i] = (Button) findViewById(numId[i]); 38 button[i].setOnClickListener(new View.OnClickListener() { 39 40 @Override 41 public void onClick(View v) { 42 43 for (int i = 0; i < numId.length; i++) { 44 if (v.equals(button[i])) { 45 num1 = i; 46 display.setText(String.valueOf(num1)); 47 } 48 } 49 50 } 51 }); 52 } 53 for (int j = 0; j < numId.length; j++) { 54 button[j] = (Button) findViewById(numId[j]); 55 button[j].setOnClickListener(new View.OnClickListener() { 56 57 @Override 58 public void onClick(View v) { 59 for (int j = 0; j < numId.length; j++) { 60 if (v.equals(button[j])) { 61 num2 = j; 62 display.setText(String.valueOf(num2)); 63 } 64 } 65 } 66 }); 67 } 68 //加算 69 pbutton = (Button) findViewById(R.id.buttonplus); 70 pbutton.setOnClickListener(new View.OnClickListener() { 71 72 @Override 73 public void onClick(View v) { 74 75 total = num1 + num2; 76 display.setText(String.valueOf(total)); 77 78 } 79 80 }); 81 82 } 83 }

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

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

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

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

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

jimbe

2019/07/05 17:35

出来ましたら, ファイル毎に「```」~「```」を分けて頂けますか. その上でそれぞれの最初の「```」を, java ファイルでしたら「```java」, xml ファイルでしたら「```xml」として頂ければ, 表示がそれぞれに合わせてフォーマットされます.
jimbe

2019/07/05 17:38

「動きませんでした」では状況が分かりかねます(動いていればご質問されなかったと思います). 具体的に, 何がどうなるはずがどうなったのか...を追記して頂けますか.
m.ts10806

2019/07/05 20:33

できましたらタイトルももう少し内容に寄せてもらえると(何が、どうできないかなど起きている問題を)
退会済みユーザー

退会済みユーザー

2019/07/05 23:30

とりあえずマークダウンの状態からjavaファイル内にxmlが書かれてるからコンパイルエラーかな(すっとぼけ)
m.ts10806

2019/07/07 20:31

>「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。 とある通り、質問を編集してください。
bake

2019/07/09 14:53

編集してみました。よろしくお願いします。
guest

回答1

0

ベストアンサー

まず基本としまして, 1 つのButton に対する ClickListener は1つしか登録できません.
setOnClickListener を2回以上呼んだ場合は最後の ClickListener しか有効ではありませんので, 件のコードの場合は num1 への値の設定を行うものは使われず, num2 へ値を設定しているもののみが動作している状態です.
ですので, 「ボタンを押すと数値が入力されるところまで出来ました」というのは, 表示はそうかもしれませんが, 内部としては想定された動作(最初のキー押下でnum1に入り, 2番目のキー押下でnum2に入る?)をしていないものと思います.
計算の前にnum1/num2にきちんと値が入るようにする必要があるでしょう.

さらに, pbutton の ClickListener で合計を求めていますので, "1" "2" "+"とボタンを押すことで合計が求まる仕様(逆ポーランド)のように見えます. であれば, 「イコールの実装がどう書いたら良いかわかりません」に対しましては, 「必要ありません」と言えます.

また, 「イコールのコードを書けば//加算のコードで加算できるようになりますでしょうか?」というご質問には「ご自身でお決めください」としか言えません.
時おりこのように「これで出来ますか」というご質問がありますが, 目的の動作をするように書くのがプログラミングであり, どのようなコードを書くかは本人しか決められません.
「a=b-c」と書いて「加算できますか」と聞かれても, どこかでcの符号を反転するようなコードがあれば, 結果的に加算が「できている」場合もあります.

投稿2019/07/10 01:56

jimbe

総合スコア12646

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

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

bake

2019/07/11 03:54

ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問