Регистрация слушателя в java / android, маленький вопрос - PullRequest
0 голосов
/ 15 июня 2011

Я хочу прочитать здесь об обработке событий пользовательского интерфейса.Я знаю Java очень хорошо, но до сих пор не было возможности написать графический интерфейс, поэтому я не знаю много о слушателях.Во всяком случае, они используют технику, с которой я никогда не сталкивался, вот что я имею в виду

// Create an anonymous implementation of OnClickListener
private OnClickListener mCorkyListener = new OnClickListener() {
  public void onClick(View v) {
    // do something when the button is clicked
  }
};

Первая строка кода смущает меня: это выглядит как объявление нового объекта, но тогда это метод?Я просто не понимаю этот код, и если вы можете помочь мне понять его, я могу продолжить свое назначение:)

PS Еще два вопроса: если у меня есть несколько кнопок на экране, все они имеют один и тот же onCLick () метод?и если да, то как я узнаю, на какую из них нажали?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 15 июня 2011

Привет, ты тоже можешь написать так

открытый класс testActivity расширяет Activity, реализует OnClickListener {

И добавь сюда ...

ImageButton Ibutton = (ImageButton) findViewById(R.id.button_1);
Ibutton.setOnClickListener(this);      

ImageButton Ibutton2 = (ImageButton) findViewById(R.id.button_2);
Ibutton2.setOnClickListener(this);      


@Override
public void onClick(View v) {
switch(v.getId()){
    case R.id.button_1:
    // action to preform on button 1
        Toast.makeText(testActivity.this, "Button 1 pressed ", Toast.LENGTH_SHORT).show();
        break;
    case R.id.button_2:
    // action to preform on button 1
        Toast.makeText(testActivity.this, "Button 2 pressed ",     Toast.LENGTH_SHORT).show();
        break;
    }
}   
1 голос
/ 15 июня 2011

Поскольку каждое представление присоединено к отдельному слушателю, каждое событие может распознать, к какому представлению оно относится

использовать следующий подход

step1 ваш класс должен реализовать OnclickListenerнапример,

public class A implements OnClickListener

step2 Добавить onclicklistener ко всем кнопкам

button1 = (Button) findViewById(R.id.btn1);
button2 = (Button) findViewById(R.id.btn2);
button3 = (Button) findViewById(R.id.btn3);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);

step3 записать реализацию onClickMethod

@Override
    public void onClick(View view) {
        if (view == button1) {
            //do button1 click action
        } else if (view ==button2) {

            //do button2 click action

        } else if (view == button3) {
//do button3 click action
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...