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

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

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

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

Android

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

Android Studio

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

1回答

3085閲覧

Login画面から新規会員登録画面に遷移したい

syyyow

総合スコア28

Java

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

Android

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

Android Studio

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2018/07/24 05:44

編集2022/01/12 10:55

Login画面に作成した新規会員登録ボタンを押し
Signinクラスへ遷移したいのですが、Intentのコードを付け足しても
エラーが出てしまいます。

エラー内容↓

エラー: シンボルを見つけられません シンボル: メソッド onCreate(Bundle)

Loginクラスはandroidstudioに既存で入っているLoginActivityを使用しました。

java 【Login.java】 /** * A login screen that offers login via email/password. */ public class Login extends AppCompatActivity implements LoaderCallbacks<Cursor> { /** * Id to identity READ_CONTACTS permission request. */ private static final int REQUEST_READ_CONTACTS = 0; /** * A dummy authentication store containing known user names and passwords. * TODO: remove after connecting to a real authentication system. */ private static final String[] DUMMY_CREDENTIALS = new String[]{ "foo@example.com:hello", "bar@example.com:world" }; /** * Keep track of the login task to ensure we can cancel it if requested. */ private UserLoginTask mAuthTask = null; // UI references. private AutoCompleteTextView mEmailView; private EditText mPasswordView; private View mProgressView; private View mLoginFormView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.login); // Set up the login form. mEmailView = (AutoCompleteTextView) findViewById(R.id.email); populateAutoComplete(); 〜〜〜〜〜略〜〜〜〜〜〜〜〜〜〜 //付け加えた文 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.login); Button sendButton = findViewById(R.id.sign_up_button); sendButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(getApplication(), Signup.class); startActivity(intent); } }); } } } } } }

java

1//新規会員画面 2Signup.java】 3 4public class Signup extends AppCompatActivity { 5 6 @Override 7 protected void onCreate(Bundle savedInstanceState) { 8 super.onCreate(savedInstanceState); 9 setContentView(R.layout.signup); 10 } 11} 12 13 14

原因がわからずです。
よろしくお願いします。

※追記

java

1//付け加え分 2 public void onClick(View v) { 3 Intent intent = new Intent(this, Signup.class); 4 5 EditText editText = (EditText)this.findViewById(R.id.sign_up_button); 6 startActivity(intent); 7 } 8 } 9 }

エラー内容

エラー: Intentに適切なコンストラクタが見つかりません(Login.UserLoginTask,Class<Signup>) コンストラクタ Intent.Intent(String,Uri)は使用できません (引数の不一致: Login.UserLoginTaskをStringに変換できません:) コンストラクタ Intent.Intent(Context,Class<?>)は使用できません (引数の不一致: Login.UserLoginTaskをContextに変換できません:)
エラー: シンボルを見つけられません シンボル: メソッド findViewById(int)

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

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

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

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

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

m.ts10806

2018/07/24 06:02

エラーが原因そのものに思いますが、エラーが何を言っているかは分かりますか?
syyyow

2018/07/24 06:05

すみません、先ほど文章変えた(今表示されているものに)のですが、エラー内容は  エラー: シンボルを見つけられません シンボル: メソッド onCreate(Bundle)  に変わりました。。
keicha_hrs

2018/07/24 06:32 編集

onCreate()が2つありますが・・・。{}のインデントもぐちゃぐちゃですし、何をどうしたのかさっぱりわかりません。
syyyow

2018/07/24 06:33

本当ですね。。この場合、super.onCreate(savedInstanceState)の方は必要なくても大丈夫ということでしょうか?
m.ts10806

2018/07/24 06:51

何をしたいかによるかと。システム側では同じメソッドに同じ型の同じ数の引数 があることでエラーになるのでその辺りをご自身の要件にそって調整すれば良いです。最低限、エラーがでない状況にしましょう…。というかIDEであれば実行前にこれくらいのエラーなら教えてくれそうなもんですが。
syyyow

2018/07/24 07:50

色々参考にして必要だと思われるものを使用しているのですが、、、。どうしてもエラーが出てしまいます。今試してる分も追記しましたが、なぜこのエラーが出るのか、わかりますでしょうか?
m.ts10806

2018/07/24 07:54 編集

「シンボルを~」は既に書きましたように、同じ名前のメソッドに同じ型の同じ数の引数 があること で起きます。型や数が違えば別のものとして解釈できますが型も数も同じなので呼び出す側はどちらを呼んでいいか判断できないわけです。
syyyow

2018/07/24 08:16

つまり、略文のなかで public void onClick (View v)をすでに作成しているために出るエラーということでしょうか? 略文の中にある public〜〜(以下略)に続けて書いても同じエラーが出てしまうのですが。
m.ts10806

2018/07/24 08:26

ちょっとコードが散らばっているので、まとめてもらえますか?既に指摘があるようにインデントも対応してください
guest

回答1

0

Login Activityを選んで作成された雛形をベースに作成しているものと思いますが、雛形を使ったのならそこにあるonCreateメソッドに自分の処理を実装する必要があります。同じ名前のメソッドを複数記述することはできませんし、雛形で作られたメソッドが何か特殊な機能を持っていて変更してはならないような決まりごとがあるわけではありません。

「雛形で作られたコードが何をしているのかわからない」のであれば、むしろ雛形を使わずにEmpty Activityから作った方がむしろ混乱を避けられるのではないでしょうか。

それから、追記されたonClickメソッドは、setOnClickListenerの引数の中に記述されたメソッドなのでしょうか?もし

Java

1 button.setOnClickListener(new View.OnClickListener() { 2 @Override 3 public void onClick(View v) { 4 Intent intent = new Intent(this, Signup.class); 5 6 EditText editText = (EditText)this.findViewById(R.id.sign_up_button); 7 startActivity(intent); 8 } 9 }

のような形になっているのだとしたら、これは正しく動きません。メソッドの引数の中にインターフェースを実装したクラスを記述することを「匿名クラス」とか「無名クラス」と言いますが、その中でthisを使うと「匿名クラス自身」を指すことになります。Intentの第1引数が求めるのは匿名クラスへの参照ではありませんし、匿名クラスにfindViewByIdメソッドは存在しません。ですからどちらもエラーになります。

Java

1 final EditText editText = findViewById(R.id.sign_up_button); 2 button.setOnClickListener(new View.OnClickListener() { 3 @Override 4 public void onClick(View v) { 5 // <クラス名>.thisという記述で匿名クラスの外側を参照できる 6 Intent intent = new Intent(Login.this, Signup.class); 7 8 // finalを付けて宣言すればこの中で変数editTextを使える 9 String str = editText.getText().toString(); 10 11 startActivity(intent); 12 } 13 } 14

このような形にすればいいのでは。

投稿2018/07/24 08:28

編集2018/07/24 08:29
keicha_hrs

総合スコア6766

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

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

syyyow

2018/07/24 14:42

追記されたonClickメソッドは、setOnClickListenerの引数の中に記述されたメソッドなのでしょうか? ↪︎いえ、一番最後に記述していました。 keicha_hrsさんのいう通り、自分で意味理解をしながら作成するのが正しいですね。 作り直ししてみようと思います。 いつもご回答いただき感謝しております。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問