2017-10-16 138 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