我正在使用相对布局,我在图像视图上放置了一个按钮。
问题是我在按钮和图像视图上都使用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();
}
帮我解决错误。
答案 0 :(得分: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 :(得分: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" />
这样Button就会在'ImageView
之上