Событие onClick не работает в Android Blank Activity

У меня пустое действие в Android Studio, и я выполнил следующие инструкции, но он не работает, когда я запускаю программу.

  1. Нажмите кнопку и найдите панель свойств / атрибутов справа.
  2. Присвойте имя onClick свойству android: onClick вашей кнопки.

  3. Реализуйте следующий метод в файле Main_Activity:

public void onClick (View view) { Toast.makeText(this, "Button 1 pressed", Toast.LENGTH_LONG).show(); } Когда я пытаюсь запустить это, я получаю такие ошибки, как:

  • ожидая объявления члена
  • объявление функции должно иметь имя

Это те ошибки, которые я получаю постоянно, и мне кажется, что задание упущено ВСЕГО. Я новичок в этом, и я надеюсь, что этот вопрос имеет смысл. "ожидание объявления члена" "объявление функции должно иметь имя" и т. д.

A. Williams 28.09.2018 01:36

@Williams, мне нужен полный код файла main_activity.

Eric 28.09.2018 01:38

Это тот же код, что и на пустом действии. Мне очень жаль, что я не поднял его прямо сейчас :( Я сделаю это, как только вернусь домой, но основным видом деятельности, насколько я помню, является только общий код класса. Мой профессор до сих пор не помог в этом и буквально просто дал только эти инструкции. Но как только вернусь домой, я добавлю их сюда. Спасибо

A. Williams 28.09.2018 01:45

Я нашел в Интернете изображение, которое выглядит точно так же. Первый скриншот на этой странице: javaworld.com/article/3104621/mobile-java/…

A. Williams 28.09.2018 01:48

но, как я уже сказал, я получу точный код, когда вернусь домой ...

A. Williams 28.09.2018 01:49

@williams, проверил URL. вам следует добавить implement View.SetOnClickListener .

Eric 28.09.2018 01:50

Хорошо, я попробую. Большое спасибо!

A. Williams 28.09.2018 02:07

хороший. не пропадай. спасибо, @Williams. хороший друг.

Eric 28.09.2018 02:08

Я перефразировал более общий вопрос.

Brody 28.09.2018 06:14
0
9
691
3

Ответы 3

1) в файле Xml вашей активности установлено свойство onClick кнопки с указанным именем функции android: onClick: "onClick"

<Button
    android:layout_width = "wrap_content"
    android:layout_height = "wrap_content"
    android:text = "Hello World!"
    android:onClick = "onButtonClick"
    app:layout_constraintBottom_toBottomOf = "parent"
    app:layout_constraintLeft_toLeftOf = "parent"
    app:layout_constraintRight_toRightOf = "parent"
    app:layout_constraintTop_toTopOf = "parent" />

2) после этого поместите ту же функцию в свою активность, но с таким параметром public void onClick (Просмотр просмотра)

public void onButtonClick(View view){
   Toast.makeText(this, "Button 1 pressed", Toast.LENGTH_LONG).show();
}

3) когда вы нажимаете кнопку, вызывается предоставленный метод

Примечание: имя функции может быть любым, но спецификатор доступа, тип возвращаемого значения и параметр должны совпадать.

Спасибо!! Это устранило мою проблему !! Ты обалденный!!

A. Williams 28.09.2018 04:46

не за что

abdevwarlock 28.09.2018 07:31

@ A.Williams, Напоминаю, что вы новый пользователь. Вы всегда можете проголосовать и принять ответ, если он помог и решил вашу проблему. :)

KhanStan99 28.09.2018 08:51

Я сделал! Спасибо :) Он сказал, что не будет отображаться, но это записано. :)

A. Williams 29.09.2018 00:34
Button yourButton = (Button)findViewById(R.id.your_button_id)  
yourButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(this, "Button 1 pressed", Toast.LENGTH_LONG).show();
        }
    });

Пожалуйста, попробуйте это на Java.

Использование XML-атрибута android:onClick для запуска события щелчка. Всего два шага:

1. назначьте android:onClick такой кнопке:

 <Button 
    android:id = "@+id/button" 
    android:layout_width = "wrap_content" 
    android:layout_height = "wrap_content" 
    android:text = "Click me!" 
    android:onClick = "btnClicked" />

2 В действии определите функцию с именем btnClicked следующим образом:

   public void btnClicked(View v) { 
            Log.d("MR.bool", "Button1 was clicked "); 
   }

Примечание: не смешивайте этот способ с setOnClickListener, только выше двух шагов.

Другие вопросы по теме