我正试图从一个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>
在我看来,我错过了一些简单的东西......但似乎无法弄明白。谢谢!
答案 0 :(得分:2)
您没有在Toast对象上运行show()方法。很常见的错误: - )
答案 1 :(得分:0)
由于onClick上的清单设置,您也可能遇到问题 机器人:的onClick = “mainButtonClick”
如果在1.5版设备上存在mainButtonClick,则可以调用它,覆盖您在代码中设置的那个
答案 2 :(得分:0)
在我的情况下,imageButton显示在列表后面。由于该列表为空,因此可以看到ImageButton,但从未触发过onClick。
在屏幕xml中添加 android:elevation =“ 5dp” 解决了我的问题
请注意,如果我使用Button而不是ImageButton,则不需要高程。