2017-10-16 142 views
-3

我使用的是相對佈局,我在圖像視圖上放置了一個按鈕。如何避免重疊點擊?

的問題是我在兩個按鈕和圖像視圖指代不同的方法,即,當按下時按鈕調用一個方法,圖像點擊調用一個不同的方法時所使用OnClick。當我點擊按鈕時,App強制退出,即有運行時異常。

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

** _幫我解決Error _ **。首先告訴錯誤是什麼。將錯誤日誌 –

+0

@IntelliJAmiya粘貼爲什麼? ahaha它容易的任務爲什麼你應該使用frame_layout? – Peter

回答

2

從佈局XML文件中刪除的onClick,設置點擊查看監聽器在運行時

在Java文件

//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

他已經有了imageview頂部的按鈕。 – Anonymous