基本的ImageButton onClick事件没有触发 - 当然简单吗?

时间:2010-09-16 22:02:24

标签: android

我正试图从一个ImageButton中获取一个简单的onClick - 它似乎是一个足够简单的任务,但我显然在这里遗漏了一些东西。

这是我的java文件:

package com.jlbeard.android.testapp;  
import android.app.Activity;  
import android.os.Bundle;  
import android.view.View;  
import android.view.View.OnClickListener;  
import android.widget.ImageButton;  
import android.widget.Toast;  

public class testapp extends Activity {  
/** Called when the activity is first created. */  
@Override  
public void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.main);  

    //handle the button press
    ImageButton mainButton = (ImageButton) findViewById(R.id.mainButton);
    mainButton.setOnClickListener(new OnClickListener() {

     @Override
        public void onClick(View v) {
      //show message
      Toast.makeText(testapp.this, "Button Pressed", Toast.LENGTH_LONG);

     }
    });
}
}

这是我的布局文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>

  <ImageView
  android:id="@+id/whereToEat"
  android:src="@drawable/where_to_eat"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_centerHorizontal="true"
  android:layout_marginTop="8px"
  />

 <ImageButton
  android:id="@+id/mainButton"
  android:src="@drawable/main_button"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_centerHorizontal="true"
  android:layout_centerVertical="true"
  android:background="@null"
  android:clickable="true"
  android:onClick="mainButtonClick"
  />

</RelativeLayout>

在我看来,我错过了一些简单的东西......但似乎无法弄明白。谢谢!

3 个答案:

答案 0 :(得分:2)

您没有在Toast对象上运行show()方法。很常见的错误: - )

答案 1 :(得分:0)

由于onClick上的清单设置,您也可能遇到问题 机器人:的onClick = “mainButtonClick”

如果在1.5版设备上存在mainButtonClick,则可以调用它,覆盖您在代码中设置的那个

答案 2 :(得分:0)

在我的情况下,imageButton显示在列表后面。由于该列表为空,因此可以看到ImageButton,但从未触发过onClick。

在屏幕xml中添加 android:elevation =“ 5dp” 解决了我的问题

请注意,如果我使用Button而不是ImageButton,则不需要高程。