2

我的一个应用程序有问题。我编写了一个基本的应用程序菜单,其中包含链接到其他活动的自定义按钮。我的问题是,当我测试它时,我的应用程序似乎没有注册我的按钮点击。点击时我没有收到任何错误或崩溃,应用程序就像点击从未发生过一样。任何人都可以为我提供有关此问题的任何帮助,我在下面提供了一些代码。

主菜单代码:

public void initialize(){

    Film = (Button) findViewById(R.id.bFilm);
}

@Override
public void onClick(View view) {
    try{
    switch(view.getId()){
    case R.id.bFilm:
        Intent film = new Intent(this, Film.class);
        startActivity(film);
        break;

布局代码:

<Button
    android:id="@+id/bFilm"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="20dp"
    android:layout_marginTop="110dp"
    android:background="@drawable/film"
    android:textSize="20sp" />

自定义 XML:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >

<item android:state_pressed="true" android:drawable="@drawable/actor_1"></item>
    <item android:state_focused="true" android:drawable="@drawable/actor_1"></item>
        <item android:drawable="@drawable/actor_1"></item>
</selector>
4

3 回答 3

1

添加

android:onclick="onClick"

 <Button
        android:id="@+id/bFilm"
android:onclick="onClick"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="110dp"
        android:background="@drawable/film"
        android:textSize="20sp" />

它将起作用
EDIT 但是 onClick没有为 API 3 和更低版本定义属性。(安卓 <= 1.5)

它从 API 4 (Android 1.6) 开始工作

如果你想要兼容性,你可以使用:

findViewById(R.id.myButton).setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        // Do stuff
    }
});
于 2013-03-08T19:08:31.177 回答
1

在您的 initialize() 中,在findViewById以下内容之后添加:

Film.setOnClickListener(onClick);
于 2013-03-08T19:08:43.690 回答
1

试试这个

public void initialize(){

Film = (Button) findViewById(R.id.bFilm);
Film.setOnClickListener(this);
}
于 2013-03-08T19:17:18.993 回答