1

我想在 java 中捕获一个 ImageButton 并为其定义一个 onClick 事件侦听器。但在捕获线应用程序意外停止。我使用 API 8 级。

这是我的java代码:

import android.os.Bundle;
import android.app.Activity;
import android.graphics.PixelFormat;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.widget.Button;
import android.widget.ImageButton;

public class Login extends Activity {
    ImageButton buttonTest =(ImageButton)findViewById(R.id.imageButton1);
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        buttonTest.setOnClickListener(strLogoAnim);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_login, menu);

        return true;
    }

    private OnClickListener strLogoAnim = new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
                    // Do something
        }
    };

    @Override
    public void onAttachedToWindow() {
        super.onAttachedToWindow();
        Window window = getWindow();
        window.setFormat(PixelFormat.RGBA_8888);
    }

}

即使我创建了一个新项目并对其进行测试。但是这个问题也存在。问题出在哪里?

4

2 回答 2

1
public class Login extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        ImageButton buttonTest =(ImageButton)findViewById(R.id.imageButton1);
        buttonTest.setOnClickListener(strLogoAnim);
    }

尝试这个。

于 2012-09-30T11:37:32.513 回答
1

你需要在onCreate中引用按钮:

public class Login extends Activity {
    ImageButton buttonTest; // remove this: =(ImageButton)findViewById(R.id.imageButton1);
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        buttonTest =(ImageButton)findViewById(R.id.imageButton1); // add this
        buttonTest.setOnClickListener(strLogoAnim);
    }
于 2012-09-30T11:39:21.640 回答