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

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

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

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

Android

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

Q&A

解決済

1回答

4248閲覧

受け取った値を使ってif文が反応しない

RoimyZomsa

総合スコア15

Java

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

Android

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

0グッド

0クリップ

投稿2016/07/27 08:23

編集2016/07/27 08:27

###前提・実現したいこと
電卓の+ボタンが押された際if文を使って判定し
+の値をvから受け取ったときのみ反応させる
if文を作る

###発生している問題・エラーメッセージ
if 文が動かない

###コード
問題の箇所

equalBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { num2 = Integer.parseInt(tvResult.getText().toString()); if(op == "+"){ tvResult.setText("0"); num1 = num1 + num2; tvResult.setText(String.valueOf(num1)); } } });

private

1 //vの値をopへ格納 2 Button opCode =(Button)v; 3 op = opCode.getText().toString(); 4 5 //opが+のとき処理をする 6 if(op == "+"){ 7 8 //テキストビューから値を取得しnum1へ格納する 9 num1 = Integer.parseInt(tvResult.getText().toString()); 10 11 //テキストビューの値を初期値にする 12 tvResult.setText("0"); 13 } 14

以下全ソース

androi

1package com.example.calcsample; 2 3import android.support.v7.app.ActionBarActivity; 4import android.os.Bundle; 5import android.view.Menu; 6import android.view.MenuItem; 7import android.view.View; 8import android.view.View.OnClickListener; 9import android.widget.Button; 10import android.widget.TextView; 11 12 13public class MainActivity extends ActionBarActivity { 14 15 TextView tvResult; 16 String str; 17 String op; 18 int num1; 19 int num2; 20 21 @Override 22 protected void onCreate(Bundle savedInstanceState) { 23 super.onCreate(savedInstanceState); 24 setContentView(R.layout.activity_main); 25 26 Button equalBtn = (Button)findViewById(R.id.equal); 27 Button clearBtn = (Button)findViewById(R.id.clean); 28 Button[] numBtn = new Button[10]; 29 30 Button[] opCode = new Button[4]; 31 opCode[0]=(Button)findViewById(R.id.puls); 32 opCode[1]=(Button)findViewById(R.id.minus); 33 opCode[2]=(Button)findViewById(R.id.multi); 34 opCode[3]=(Button)findViewById(R.id.cut); 35 36 equalBtn.setOnClickListener(new OnClickListener() { 37 38 @Override 39 public void onClick(View v) { 40 num2 = Integer.parseInt(tvResult.getText().toString()); 41 42 if(op == "+"){ 43 44 tvResult.setText("0"); 45 num1 = num1 + num2; 46 tvResult.setText(String.valueOf(num1)); 47 } 48 49 50 } 51 }); 52 53 54 for(int i=0; i<opCode.length ;i++){ 55 opCode[i].setOnClickListener(new OnClickListener() { 56 57 @Override 58 public void onClick(View v) { 59 preCalc(v); 60 } 61 }); 62 } 63 64 65 clearBtn.setOnClickListener(new OnClickListener() { 66 67 @Override 68 public void onClick(View v) { 69 tvResult.setText("0"); 70 num1 = 0; 71 num2 = 0; 72 } 73 }); 74 75 76 numBtn [0] = (Button)findViewById(R.id.num0); 77 numBtn [1] = (Button)findViewById(R.id.num1); 78 numBtn [2] = (Button)findViewById(R.id.num2); 79 numBtn [3] = (Button)findViewById(R.id.num3); 80 numBtn [4] = (Button)findViewById(R.id.num4); 81 numBtn [5] = (Button)findViewById(R.id.num5); 82 numBtn [6] = (Button)findViewById(R.id.num6); 83 numBtn [7] = (Button)findViewById(R.id.num7); 84 numBtn [8] = (Button)findViewById(R.id.num8); 85 numBtn [9] = (Button)findViewById(R.id.num9); 86 87 tvResult =(TextView)findViewById(R.id.result); 88 tvResult.setText("0"); 89 90 for(int i=0; i<numBtn.length; i++){ 91 numBtn[i].setOnClickListener(new OnClickListener() { 92 93 @Override 94 public void onClick(View v) { 95 numBtnClicked(v); 96 97 } 98 }); 99 } 100 } 101 102 103 private void numBtnClicked(View v) { 104 Button numBtn =(Button)v; 105 str = numBtn.getText().toString(); 106 String ans = ""; 107 //テキストビューから値(文字)を取得する 108 ans = tvResult.getText().toString(); 109 110 //テキストビューが0だった場合nullにする 111 if(ans == "0"){ 112 tvResult.setText(""); 113 }else{ 114 115 //押されたボタンの番号(テキスト)と取得した値を文字列連携する 116 str = ans + str; 117 } 118 119 //連結した値をセットする 120 tvResult.setText(str); 121 122 } 123 124 125 private void preCalc(View v) { 126 //vの値をopへ格納 127 Button opCode =(Button)v; 128 op = opCode.getText().toString(); 129 130 //opが+のとき処理をする 131 if(op == "+"){ 132 133 //テキストビューから値を取得しnum1へ格納する 134 num1 = Integer.parseInt(tvResult.getText().toString()); 135 136 //テキストビューの値を初期値にする 137 tvResult.setText("0"); 138 } 139 140 141 142 } 143 144 145 @Override 146 public boolean onCreateOptionsMenu(Menu menu) { 147 // Inflate the menu; this adds items to the action bar if it is present. 148 getMenuInflater().inflate(R.menu.main, menu); 149 return true; 150 } 151 152 @Override 153 public boolean onOptionsItemSelected(MenuItem item) { 154 // Handle action bar item clicks here. The action bar will 155 // automatically handle clicks on the Home/Up button, so long 156 // as you specify a parent activity in AndroidManifest.xml. 157 int id = item.getItemId(); 158 if (id == R.id.action_settings) { 159 return true; 160 } 161 return super.onOptionsItemSelected(item); 162 } 163} 164

###試したこと
課題に対してアプローチしたことを記載してください

###補足情報(言語/FW/ツール等のバージョンなど)
Eclipse使用

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

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

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

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

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

guest

回答1

0

ベストアンサー

String型の文字が等しいかを検証するときは、String#equals(expect) を使います。

if(op.equals("+")){

あと、+が全角文字なのが気になりますが。

投稿2016/07/27 08:31

A-pZ

総合スコア12011

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

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

RoimyZomsa

2016/07/27 08:37

equalsにすれば動きましたありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問