Может кто-нибудь помочь мне с тем, почему мой OnClickListener не будет работать?Android - PullRequest
0 голосов
/ 29 декабря 2010

Есть ли что-то простое, что я мог бы упустить?Изображение "kruis" отображается на моем ImageButton, так что я уверен, что мой main.xml хорош, но когда я нажимаю на ImageButton, я не получаю Toast, и testView не меняется ... боролся несколько часовна этом сейчас, не уверен, что я делаю неправильно!

package com.matchit;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;

public class matchit extends Activity {

OnClickListener cardListener;
TextView testView;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    testView = (TextView)findViewById(R.id.test);

    ImageButton b1 = (ImageButton)findViewById(R.id.card1);

    b1.setImageResource(R.drawable.kruis);
    b1.setOnClickListener(cardListener);

    cardListener = new OnClickListener(){

        @Override
        public void onClick(View v) {

            testView.setText("its working");
            Toast.makeText(getApplicationContext(),
                    "its working",
                     Toast.LENGTH_LONG).show();
        }
    };
}

}

1 Ответ

5 голосов
/ 29 декабря 2010

Значение cardListener равно нулю в этой строке:

  b1.setOnClickListener(cardListener);

Просто переместите эту строку после cardListener = new OnClickListener(){

cardListener = new OnClickListener(){

    @Override
    public void onClick(View v) {

        testView.setText("its working");
        Toast.makeText(getApplicationContext(),
                "its working",
                 Toast.LENGTH_LONG).show();
    }
};

// moved down
b1.setOnClickListener(cardListener);
...