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

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

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

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

Android Studio

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

Q&A

0回答

1248閲覧

java androidアプリ 電卓作成 onCreate(Bundle)の重複エラー

programing_you

総合スコア12

Java

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

Android Studio

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

0グッド

0クリップ

投稿2019/06/23 10:21

編集2019/06/23 10:23

前提・実現したいこと

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

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

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

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

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

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

swordone

2019/06/23 12:12

「import文が適用されない」とはどういう意味でしょうか?
退会済みユーザー

退会済みユーザー

2019/06/24 00:03

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

2019/06/24 02:31

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

2019/06/24 11:36

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

2019/06/24 14:04

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問