Попытка вызвать действие, но возникли проблемы с onClick - PullRequest
0 голосов
/ 01 ноября 2011

я пытаюсь запустить этот простой код (я начинающий :).

пытается запустить это. // текст обычно используется для кнопок. Тем не менее, я видел эту технику переключения, которую я хотел попробовать, она казалась более эффективной. Тем не менее, я получаю ошибки, связанные с onClick (что-то о () и что 'void является недопустимым типом'). Я понятия не имею, что может вызвать это. просто хочу получить доступ к кнопкам. Может кто-нибудь сказать, пожалуйста, почему?

Спасибо!

    package com.experiment.fewops;

    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;

    public class FewOptions extends Activity {
        /** Called when the activity is first created. */

        final Button sexy = (Button) findViewById(R.id.buttonSexy);
        final Button text = (Button) findViewById(R.id.buttonText);

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

    //        sexy.setOnClickListener(new View.OnClickListener() {
    //          
    //          @Override
    //          public void onClick(View v) {
    //              Intent intent = new Intent(this, SexyPage.class);
    //              startActivity(intent);
    //          }
    //      });

    @Override
    public void onClick(View v) {


        switch(v.getId()){
        case R.id.buttonSexy:
            Intent intent = new Intent(this,SexyPage.class);
            startActivity(intent);
            break;
        }

    };


}

}

Ответы [ 3 ]

1 голос
/ 02 ноября 2011

Здесь на самом деле есть две проблемы: во-первых, как сказал @Saiesh, если вы хотите реализовать прослушиватель щелчков на уровне класса, вам нужно изменить объявление класса, чтобы включить OnClickListener.Таким образом, ваша декларация будет выглядеть как

public class FewOptions extends Activity implements OnClickListener{

Вторая проблема (и причина, по которой вы получаете ошибку о том, что void является плохим типом), заключается в том, что вы объявляете метод onClick в теле вашего onCreateметод.переместите объявление метода onClick за закрывающую скобку (}) метода onCreate, и эта ошибка должна исчезнуть.

Еще одно замечание: после внесения 2 исправлений, указанных выше, не забудьтедобавьте свой класс в качестве прослушивателя для кнопки:

 sexy.setOnClickListener(this);
0 голосов
/ 02 ноября 2011

Хорошо, решение состоит в том, что для использования этого метода onClick () ваш класс должен реализовать интерфейс onClickListener. Таким образом, заголовок вашего класса должен выглядеть примерно так:

public class FewOptions extends Activity implements onClickListener
{
       //Eclipse will automatically ask you to override the onClick() method
}

Так вот решение :) 1004 *

0 голосов
/ 01 ноября 2011

Вам нужно передать правильный контекст

Intent intent = new Intent(FewOptions.this,SexyPage.class);
FewOptions.this.startActivity(intent);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...