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

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

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

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

Android Studio

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

受付中

java androidアプリ 電卓作成

programing_you
programing_you

総合スコア0

Java

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

Android Studio

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

0回答

0評価

0クリップ

900閲覧

投稿2019/06/23 10:21

編集2022/01/12 10:55

前提・実現したいこと

Javaで電卓アプリを作成しています。
IDEはAndrid Studioです・

MyCalc.javaに、電卓の演算機能付きボタンを配置するコードを入力し、実機で確認しようと「run app」ボタンを押したところ、以下のようなエラーメッセージが表示されました。

発生している問題・エラーメッセージ

エラー: メソッド onCreate(Bundle)はすでにクラス MyCalcで定義されています エラー: シンボルを見つけられません シンボル: 変数 fab 場所: クラス id

該当のソースコード

package com.example.myandonlinedentaku; import android.os.Bundle; import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.google.android.material.snackbar.Snackbar; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class MyCalc extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my_calc); Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); FloatingActionButton fab = findViewById(R.id.fab); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) .setAction("Action", null).show(); } }); } int recentOperator = R.id.button_equal; // 最近押された計算キー double result; // 計算結果 boolean isOperatorKeyPushed; // 計算キーが押されたことを記憶 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my_calc); // ボタン 0に関するイベントリスナとハンドラ Button btn_0 = (Button) findViewById(R.id.button_0); btn_0.setOnClickListener(new View.OnClickListener(){ public void onClick(View v) { // 以下に 0ボタンのイベントハンドラを記述すること } }); // ボタン 1に関するイベントリスナとハンドラ Button btn_1 = (Button) findViewById(R.id.button_1); btn_1.setOnClickListener(new View.OnClickListener(){ public void onClick(View v){ EditText txt01 = (EditText) findViewById(R.id.txt01); if (isOperatorKeyPushed == true){ txt01.setText("1"); }else { txt01.append("1"); } isOperatorKeyPushed = false; } }); // ボタン 2に関するイベントリスナとハンドラ Button btn_2 = (Button) findViewById(R.id.button_2); btn_2.setOnClickListener(new View.OnClickListener(){ public void onClick(View v){ // 以下に 2ボタンのイベントハンドラを記述すること } }); // ボタン 3に関するイベントリスナとハンドラ Button btn_3 = (Button) findViewById(R.id.button_3); btn_3.setOnClickListener(new View.OnClickListener(){ public void onClick(View v){ // 以下に 3ボタンのイベントハンドラを記述すること } }); // ボタン 4に関するイベントリスナとハンドラ Button btn_4 = (Button) findViewById(R.id.button_4); btn_4.setOnClickListener(new View.OnClickListener(){ public void onClick(View v){ // 以下に 4ボタンのイベントハンドラを記述すること } }); // ボタン 5に関するイベントリスナとハンドラ Button btn_5 = (Button) findViewById(R.id.button_5); btn_5.setOnClickListener(new View.OnClickListener(){ public void onClick(View v){ // 以下に 5ボタンのイベントハンドラを記述すること } }); // ボタン 6に関するイベントリスナとハンドラ Button btn_6 = (Button) findViewById(R.id.button_6); btn_6.setOnClickListener(new View.OnClickListener(){ public void onClick(View v){ // 以下に 6ボタンのイベントハンドラを記述すること } }); // ボタン 7に関するイベントリスナとハンドラ Button btn_7 = (Button) findViewById(R.id.button_7); btn_7.setOnClickListener(new View.OnClickListener(){ public void onClick(View v){ // 以下に 7ボタンのイベントハンドラを記述すること } }); // ボタン 8に関するイベントリスナとハンドラ Button btn_8 = (Button) findViewById(R.id.button_8); btn_8.setOnClickListener(new View.OnClickListener(){ public void onClick(View v){ // 以下に 8ボタンのイベントハンドラを記述すること } }); // ボタン 9に関するイベントリスナとハンドラ Button btn_9 = (Button) findViewById(R.id.button_9); btn_9.setOnClickListener(new View.OnClickListener(){ public void onClick(View v){ // 以下に 9ボタンのイベントハンドラを記述すること } }); // ボタン∗に関するイベントリスナとハンドラ Button btn_multiply = (Button) findViewById(R.id.button_multiply); btn_multiply.setOnClickListener(new View.OnClickListener(){ public void onClick(View v) { // 以下に∗ボタンのイベントハンドラを記述すること } }); // ボタン/に関するイベントリスナとハンドラ Button btn_divide = (Button) findViewById(R.id.button_divide); btn_divide.setOnClickListener(new View.OnClickListener(){ public void onClick(View v) { // 以下に/ボタンのイベントハンドラを記述すること } }); // ボタン+に関するイベントリスナとハンドラ Button btn_add = (Button) findViewById(R.id.button_add); btn_add.setOnClickListener(new View.OnClickListener(){ public void onClick(View v) { // +ボタンのイベントハンドラ EditText txt01 = (EditText) findViewById(R.id.txt01); TextView txtview01 = (TextView) findViewById(R.id.txtview01); double value = Double.parseDouble(txt01.getText().toString()); if (recentOperator == R.id.button_equal) { result = value; } else{ result = calc(recentOperator, result, value); txt01.setText(String.valueOf(result)); } recentOperator = R.id.button_add; txtview01.setText("+"); isOperatorKeyPushed = true; } }); // ボタン−に関するイベントリスナとハンドラ Button btn_subtract = (Button) findViewById(R.id.button_subtract); btn_subtract.setOnClickListener(new View.OnClickListener(){ public void onClick(View v) { // 以下に−ボタンのイベントハンドラを記述すること } }); // ボタン=に関するイベントリスナとハンドラ Button btn_equal = (Button) findViewById(R.id.button_equal); btn_equal.setOnClickListener(new View.OnClickListener(){ public void onClick(View v) { // 以下に=ボタンのイベントハンドラを記述すること } }); // ボタン clear に関するイベントリスナとハンドラ Button btn_clear = (Button) findViewById(R.id.button_clear); btn_clear.setOnClickListener(new View.OnClickListener(){ public void onClick(View v) { // 以下にclear ボタンのイベントハンドラを記述すること } }); } // 演算に関するメソッド double calc(int operator, double value1, double value2) { switch (operator) { case R.id.button_add: return value1 + value2; case R.id.button_subtract: return value1 - value2; case R.id.button_multiply: return value1 * value2; case R.id.button_divide: return value1 / value2; default: return value1; } } }

試したこと

onCreate(Bundle)が重複しているらしいので、片方削除したり、被っている構文を一つにまとめてみましたが、今度はimport文が適用されなくなってしまいました。

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

  • Android Gradle Plugin Version

3.4.1

  • Gradle Version

5.1.1

良い質問の評価を上げる

以下のような質問は評価を上げましょう

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

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

swordone
swordone

2019/06/23 12:12

「import文が適用されない」とはどういう意味でしょうか?
asahina1979
asahina1979

2019/06/24 00:03

エラー的に切り分ける場所を間違えてそうな気がするが
programing_you
programing_you

2019/06/24 02:31

>>swordoneさん onCreateをコメントアウトしたり、1つに統括するとimport文が灰色になります。importが読み込めなくなっているので、大量のエラーが発生してしまいます。 >>asahina1979さん OnCreateを切り分ける場所という意味でしょうか?
programing_you
programing_you

2019/06/24 11:36

一番上の行の protected void onCreate関数をまるごと削除したらエラー文ごっそりなくなりました。
swordone
swordone

2019/06/24 14:04

まさか、これまでonCreateという行「だけ」を消したりコメントアウトしたりしたわけではないでしょうね。

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

Java

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

Android Studio

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