現在アンドロイドアプリの制作を行っており、画面遷移にてつまづいています。
実現したい機能
画面A(MainActivity)、画面B(DrawActivity1)、画面C(DrawActivity2)があります。
画面A → 画面B → 画面C の順に遷移させたいと思っています。
画面B,Cにはユーザーが情報を入力する箇所があり、その情報をのちのち使用したいと思っています。
以下のようなコードを書いているのですが、エラーが出てしまいつまづいてしましたました。
どなたかアドバイスをいただけないでしょうか。
I/System.out: これから1文字目の登録を始めるよ I/System.out: 1文字目とうろくしたよ これから2文字目の登録を始めるよ D/AndroidRuntime: Shutting down VM E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.charasimilarity, PID: 6477 java.lang.IllegalStateException: Could not execute method for android:onClick at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:390) at android.view.View.performClick(View.java:6597) at android.view.View.performClickInternal(View.java:6574) at android.view.View.access$3100(View.java:778) at android.view.View$PerformClick.run(View.java:25885) at android.os.Handler.handleCallback(Handler.java:873) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6669) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:385) at android.view.View.performClick(View.java:6597) at android.view.View.performClickInternal(View.java:6574) at android.view.View.access$3100(View.java:778) at android.view.View$PerformClick.run(View.java:25885) at android.os.Handler.handleCallback(Handler.java:873) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6669) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.charasimilarity/com.example.charasimilarity.DrawActivity2}; have you declared this activity in your AndroidManifest.xml? at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2005) at android.app.Instrumentation.execStartActivity(Instrumentation.java:1673) at android.app.Activity.startActivityForResult(Activity.java:4586) at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:767) at android.app.Activity.startActivityForResult(Activity.java:4544) at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:754) at com.example.charasimilarity.MainActivity.launchDrawActivity2(MainActivity.java:28) at com.example.charasimilarity.MainActivity.onStartButtonClick(MainActivity.java:40) at java.lang.reflect.Method.invoke(Native Method) at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:385) at android.view.View.performClick(View.java:6597) at android.view.View.performClickInternal(View.java:6574) at android.view.View.access$3100(View.java:778) at android.view.View$PerformClick.run(View.java:25885) at android.os.Handler.handleCallback(Handler.java:873) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6669) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
###コード
MainActivity
1 public void launchDrawActivity1(){ 2 Intent intent = new Intent(this,DrawActivity1.class); 3 startActivityForResult(intent,Chara1_ID); 4 } 5 6 public void launchDrawActivity2(){ 7 Intent intent2 = new Intent(this,DrawActivity2.class); 8 startActivityForResult(intent2,Chara2_ID); 9 } 10 11 12 13 public void onStartButtonClick(View view){ 14 switch (view.getId()) { 15 case R.id.button_start: 16 System.out.println("これから1文字目の登録を始めるよ"); 17 launchDrawActivity1(); 18 System.out.println("1文字目を登録したよ。"); 19 System.out.println("これから2文字目の登録を始めるよ"); 20 launchDrawActivity2(); 21 System.out.println("2文字目を登録しましたよ。"); 22 break; 23 default: 24 break; 25 } 26 } 27 28 @Override 29 protected void onActivityResult(int requestCode, int resultCode, Intent data) { 30 switch (requestCode) { 31 case Chara1_ID: 32 if (RESULT_OK == resultCode) { 33 Chara1 = data.getStringExtra("DA1"); 34 System.out.println(Chara1); 35 } 36 break; 37 case Chara2_ID: 38 if (RESULT_OK == resultCode) { 39 Chara2 = data.getStringExtra("DA2"); 40 System.out.println(Chara2); 41 } 42 break; 43 default: 44 break; 45 } 46 }
DrawActivity1
1@Override 2 public void onClick(View view) { 3 switch (view.getId()) { 4 case R.id.button_clear: 5 reset(); 6 break; 7 case R.id.button_next: 8 Intent intent = new Intent(); 9 intent.putExtra("DA1", "これはテストです"); 10 setResult(RESULT_OK, intent); 11 finish(); 12 break; 13 default: 14 break; 15 } 16 }
DrawActivity2
1@Override 2 public void onClick(View view) { 3 switch (view.getId()) { 4 case R.id.button_clear2: 5 reset(); 6 break; 7 case R.id.button_next2: 8 Intent intent = new Intent(); 9 intent.putExtra("DA2", "これはテストです2"); 10 setResult(RESULT_OK, intent); 11 finish(); 12 break; 13 default: 14 break; 15 } 16 }
あなたの回答
tips
プレビュー