Я дал атрибут id:
android: id = "@ + id / animation_layout"
в макете по умолчанию (пронумерованный как 1) в activity_main.xml
Но когда я попытался вызвать его в MainActivity.java по его идентификатору: ConstraintLayout constraintLayout = findViewById (R.id.animation_layout);
Что мне не хватает?
также прикрепил код:
<android.support.constraint.ConstraintLayout xmlns:android = "http://schemas.android.com/apk/res/android"
xmlns:app = "http://schemas.android.com/apk/res-auto"
xmlns:tools = "http://schemas.android.com/tools"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:id = "@+id/animation_layout"
android:background = "@drawable/gradients_list"
tools:context = ".MainActivity">
и код Java:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Gradient animation
ConstraintLayout constraintLayout = findViewById(R.id.animation_layout);
AnimationDrawable animationDrawable = (AnimationDrawable) constraintLayout.getBackground();
animationDrawable.setEnterFadeDuration(2000);
animationDrawable.setEnterFadeDuration(4000);
animationDrawable.start();
Спасибо за помощь :)
Это происходит когда-то с момента нового обновления Android! что вы даже предоставляете идентификаторы в xml, но все же java api для Android их не извлекает! так что вам нужно сделать этот шаг!
1: очистка сборки удаляет старый встроенный кеш! и это должно решить проблему
2: если это не приводит к тому, что ваш идентификатор читается в java, вы можете использовать опцию Rebuild из того же меню!
3: если это не сработает, вы можете перейти с ФАЙЛ-> аннулировать кеш и перезапустить
Иногда это работает, просто снова синхронизируя градиент, но ваши решения хороши.
да, в основном, если вы синхронизируете gradle, он автоматически запускает команду очистки! как вы можете видеть в файле build.gradle проекта, для него определена эта функция Clean! @Jsperk
@EliranLiriElgozi проголосовать за это! Рад что помогло!
просто зайдите в меню сборки Android и запустите команду clean! это решит проблему!