Android studio не работает setonclicklistener

Android studio cannot resolve setOnClickListener

Having a problem with Android studio with the randomizer application I’m making and it seems unable to resolve setOnClickListener. Below is the code for the application I can’t seem to identify the problem any help would be greatly appreciated.

4 Answers 4

Move your code to the onCreate() method like this:

  1. Declare your TextView and Button widgets as global .
  2. Set button onClick listener from OnCreate() method.

Try this:

Move your code inside OnCreate() Method.

The solution was presented to you, now let dig into some theory: although you have tagged your question as android related, I’ll suggest you to look a little bit at some object oriented programming principles. If you want to have executable code (i.e. code that calls other methods on object members and the like) in your class, you should put it inside a method. The idea is that an object must be first created(instantiated) in order to use all its fields without worrying if its fields are instantiated

Note that all the code outside methods will be executed either when the class is loaded (static code blocks) or when an object of that class type is created (constructor).

Going back to your original question: the android virtual machine cannot even tell who is «button» at the moment when you try to set its click listener, because at that point in execution the instance of MainActivity created by the system is not completely created (instantiated).

Читайте также:  Как настроить колонки чтобы были басы

Not the answer you’re looking for? Browse other questions tagged android or ask your own question.

Linked

Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

site design / logo © 2021 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2021.10.19.40496

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

Источник

Обработчик нажатия кнопок не работает в Android Studio

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

Вот почему, чтобы получить идентификатор кнопки, я написал код ниже

Но, по некоторым причинам, когда я нажимаю кнопку, она не приходит внутрь. Я что-то пропустил? Мой код ниже.

Полный код действия

6 ответов

Лучший способ добиться этого — использовать setContentView(R.layout.activity_login) в вашем методе onCreate() , а затем нажать кнопку findViewById(R.id.btnLogin) .

Строка setContentView(R.layout.activity_login); раздувает макет и отображает представления, определенные в вашем XML. Это совершенно другие экземпляры, чем те, которые были созданы предыдущим вызовом inflate() . Вы, кажется, смешиваете способ, которым мы раздуваем представление для фрагмента и способ, которым мы делаем это для действия. В Деятельности мы просто называем setContentView() . Это означает, что вы должны изменить свой код на следующее:

Теперь код для установки OnClickListener найдет правильную кнопку.

Обратите внимание, что первые две строки onCreate() всегда будут такими, как показано здесь. Единственным отличием будет имя макета, используемого в setContentView() . Вы избежите сильной головной боли, если будете всегда следовать этой схеме.

Предполагая, что вы сделали то, что говорит @ Code-Apprentice (поместите что-то для выполнения), могут произойти другие вещи:

Кнопка clickable ? Проверьте это в макете или установите с помощью

такое кнопка enabled ? Так же, как и раньше.

есть ли другое View перекрывающее кнопку, которая ловит щелчок перед ним?

Удалите View rootView = getLayoutInflater().inflate(R.layout.activity_login, null, false); и замените его setContentView

Может быть намерение находится под OnActivityResult, не выходя на улицу

Так что просто удалите этот метод button.setonclicklitner () из OnactivityResult

Прежде всего, в Activity вам не нужно раздувать макет, вы связываете его с помощью метода setContentView :

Во-вторых, если вы хотите сделать это анонимным способом, вы готовы пойти, но добавьте что-то в метод onClick:

Или вы можете сделать это так:

Если вы делаете это таким образом, вы должны реализовать View.OnClickListener в своей деятельности с помощью:

И, наконец, опять же, если вы ничего не делаете в своем методе кликов, Android не сделает этого, поэтому:

Источник

setOnClickListener не работает во фрагменте

Я пытаюсь установить onclicklistener в своем фрагменте, в который включена пользовательская панель инструментов, а на панели инструментов у меня есть значок колокольчика, который я пытаюсь поставить onclicklistener , но он не работает

Это панель инструментов custom_toolbar.xml

Потом в Fragment.kt

Когда нажимают на звонок, я хочу выполнить какое-то действие. В настоящее время я должен иметь возможность отображать журнал. А также я могу получить к нему доступ и изменить его видимость, так что это не проблема инициации

5 ответов

Поэтому я посмотрел на него и обнаружил небольшую ошибку: мне пришлось использовать AppBar Layout, который фактически решил проблему, так как фрагмент.xml не смог получить макет панели приложения, поэтому он не распознавал щелчки. После этого он работал как шарм

Во фрагменте .xml

Попробуйте это, добавить идентификатор на панель инструментов

Тогда внутри фрагмент

Добавьте идентификатор в тег панели инструментов в xml, а затем в файл kotlin добавьте нижнюю строку в методе onViewCreated

(контекст как AppCompatActivity) .setSupportActionBar (your_toolbar_id)

Если вы хотите, чтобы RelativeLayout обрабатывал щелчок, вы должны добавить к нему атрибут android:clickable :

Это связано с тем, что RelativeLayout позволяет передавать сенсорное событие от него, чтобы дочернее представление могло обработать это событие.

Альтернатива . —

Возьмите Относительное расположение как заголовок в классе фрагмента, как это

Источник

setOnClickListener not working for button in Android Kotlin

I am trying to build a simple calculator app for android using kotlin. But setOnClickListener is not working while clicking the buttons.

3 Answers 3

This is because you’re not setting any listener to the buttons, but you’re defining new listeners that don’t invoke any method

This will work:

This will work too, but here you have 2 listeners: the original one invoked by another one:

If you really do not want to implement View.OnClickListener you just need to trigger your local listener on button click. e.g. for button0 make it

Data binding can reduce the findViewById lines. My latest environment provides data binding for kotlin by default.

first of all, you don’t need to use findViewById in Kotlin. You can use it directly using id you provide in xml.

  1. For multiple button click you can implement View.OnClickListener in activity and use it like.

If you don’t want to set setOnClickListener for every button you can use databinding for that as well. It reduce lots of code.

Источник

Ошибка Button.setOnClickListener

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Кто знает как отследить button.setOnClickListener?
хочу что то типа button.setOnTouchListener(this); @Override public boolean.

Не могу задать банальные setOnClickListener
Делаю первые шаги в программировании под Andoriod. Запускаю в эмуляторе. Приложение падает. Как я.

SetOnClickListener исчезает глобальная переменная
Помогите исчезает глобальная переменная //Здесь переменная выводится нормально Log.d(LOG_TAG.

Переключить setOnTouchListener с setOnClickListener в TextView
Всем привет! Как можно переключать setOnTouchListener с setOnClickListener в TextView? Заранее.

Решение

Ошибка при нажатии кнопки button
Добрый день, прошу прощения за такой глупый вопрос. Только начал разбираться, и тут сразу ловлю.

Как в Android положить один объект (button) на другой (button)?
Скажите, как можно положить один объект на другой, так что бы они оба были кликабельными? У менять.

Ошибка при нажатии на кнопку (button)
Проблема видна на скриншоте. Помогите, пожалуйста. Никак не могу раздуплиться. Код: using.

Если Button 1 и Button 2 нажаты — Button 3 стала активной, как?
Проверка если Button 1 и Button 2 нажаты — Button 3 стала активной Причем нужно чтобы это.

Ошибка на обработчике клика button
нужна помощь с курсовой.ошибка.как исправить не понимаю implementation var.

Ошибка при нажатии на button
при нажатии на кнопку выходит ошибка Project Project1.exe raised exception class EAccessViolation.

Источник

Оцените статью