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 に答える