2017-10-16 18 views
-3

私はイメージビュー上にボタンを配置した相対レイアウトを使用しています。クリックが重複しないようにするにはどうすればよいですか?

問題は私がボタンとイメージビューの両方で使用したことです。つまり、ボタンをクリックするとメソッドが呼び出され、クリックされたときに別のメソッドが呼び出されます。ボタンをクリックすると、アプリケーション強制は終了します。つまり、実行時例外があります。

activity_main.xml

<Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="click" 
     android:onClick="sampleClick" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="125dp" 
     android:id="@+id/button" /> 

    <ImageView 
     android:id="@+id/imageView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     app:srcCompat="@drawable/oreo" 
     android:onClick="imageClick" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentStart="true" /> 

MainActivity.java

public void sampleClick(View view){ 
     Toast.makeText(MainActivity.this,"Button Click",Toast.LENGTH_LONG).show(); 

    } 

    public void imageClick(View view){ 
     Toast.makeText(MainActivity.this,"Image Click",Toast.LENGTH_LONG).show(); 
    } 

私はエラーを解決するのに役立ちます。

enter image description here

+0

エラーログを投稿する – Anonymous

+0

** _エラー_ **を解決するのを手伝ってください。まず、エラーが何であるかを教えてください。エラーログを貼り付けてください –

+0

@IntelliJAmiya何のために? ahahaの簡単なタスクなぜhiはframe_layoutを使うべきですか? – Peter

答えて

2

javaファイルでランタイム

でビューのリスナーをクリックして設定、レイアウトxmlファイルからのonClickを削除

//setting click listeners 

findViewById(R.id.imageView).setOnClickListener(this); 
findViewById(R.id.button).setOnClickListener(this); 

//implement you java class with View.OnClickListener interface and override onClick method 

@Override 
public void onClick(View v){ 

     switch(v.getId()){ 

      case R.id.imageView: 
        Toast.makeText(MainActivity.this,"Image Click",Toast.LENGTH_LONG).show(); 
        break; 

      case R.id.button: 
        Toast.makeText(MainActivity.this,"Button Click",Toast.LENGTH_LONG).show(); 
        break; 

     } 
} 
1

の周りにそれらを切り替えるようにしてください。

<ImageView 
    android:id="@+id/imageView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    app:srcCompat="@drawable/oreo" 
    android:onClick="imageClick" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentStart="true" /> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="click" 
    android:onClick="sampleClick" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="125dp" 
    android:id="@+id/button" /> 

ボタンはImageViewの 'の上に' となります。この方法で

+0

彼はすでに画像ビューの上にボタンを持っています。 – Anonymous

関連する問題