
###前提・実現したいこと
実行させたアプリのボタンの処理を実行させる。
###発生している問題・エラーメッセージ
実行させたアプリのボタンをタップすると、エラーが発生しアプリが落ちてしまいます。
06-25 08:51:26.463 8106-8106/com.example.---.myapplication E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.kaikoro.myapplication, PID: 8106 java.lang.IllegalStateException: Could not find method bottomBtn(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton with id 'button3' at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:327) at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284) at android.view.View.performClick(View.java:5230) at android.view.View$PerformClick.run(View.java:21212) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5595) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
###該当のソースコード
MainActivity
Java
1import android.support.v7.app.AppCompatActivity; 2import android.os.Bundle; 3import android.util.Log; 4import android.view.GestureDetector; 5import android.view.MotionEvent; 6 7public class MainActivity extends AppCompatActivity { 8 9 GestureDetector gestureDetector; 10 11 @Override 12 protected void onCreate(Bundle savedInstanceState) { 13 super.onCreate(savedInstanceState); 14 setContentView(R.layout.activity_main); 15 16 //ジェスチャーのインスタンス化 17 gestureDetector = new GestureDetector(this, mOnGestureListener); 18 19 } 20 21 // タッチイベント 22 @Override 23 public boolean onTouchEvent(MotionEvent event) { 24 return gestureDetector.onTouchEvent(event); 25 } 26 27 // タッチイベントのリスナー 28 final GestureDetector.SimpleOnGestureListener mOnGestureListener = new GestureDetector.SimpleOnGestureListener() { 29 @Override 30 public boolean onFling(MotionEvent event1, MotionEvent event2, float velocityX, float velocityY) { 31 32 try { 33 Log.d("Listener", "onFling"); 34 return true; 35 } catch (Exception e) { 36 return false; 37 } 38 } 39 40 @Override 41 public void onLongPress(MotionEvent event) { 42 Log.d("Listener", "onLongPress"); 43 } 44 }; 45 46 public void bottomBtn() { 47 Log.d("button", "bottonBtn"); 48 } 49}
activity_main.xml
XML
1<?xml version="1.0" encoding="utf-8"?> 2<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:id="@+id/activity_main" 5 android:layout_width="match_parent" 6 android:layout_height="match_parent" 7 android:paddingBottom="@dimen/activity_vertical_margin" 8 android:paddingLeft="@dimen/activity_horizontal_margin" 9 android:paddingRight="@dimen/activity_horizontal_margin" 10 android:paddingTop="@dimen/activity_vertical_margin" 11 tools:context="com.example.---.myapplication.MainActivity"> 12 13 <LinearLayout 14 android:layout_width="match_parent" 15 android:layout_height="match_parent" 16 android:layout_weight="1" 17 android:orientation="vertical"> 18 19 <Button 20 android:id="@+id/button1" 21 android:layout_width="match_parent" 22 android:layout_height="match_parent" 23 android:layout_weight="1" 24 android:text="Button" 25 android:textSize="20dp" /> 26 27 <Button 28 android:id="@+id/button2" 29 android:layout_width="match_parent" 30 android:layout_height="match_parent" 31 android:layout_weight="1" 32 android:text="Button" 33 android:textSize="20dp" /> 34 35 <Button 36 android:id="@+id/button3" 37 android:layout_width="match_parent" 38 android:layout_height="match_parent" 39 android:layout_weight="1" 40 android:onClick="bottomBtn" 41 android:text="Button" 42 android:textSize="20dp" /> 43 44 </LinearLayout> 45 46</LinearLayout>
###試したこと
疑問に思いonTouchEventを動かしてみましたが、エラーは出ず、Log.d()も呼び出さないまま、アプリも落ちませんでした。
###補足情報(言語/FW/ツール等のバージョンなど)
環境
Windows 10
Android studio(2.3.3)
Gradle 3.2

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/06/25 07:11