Android Studio-MainActivity.java看不到id属性

时间:2018-07-22 20:21:30

标签: android android-layout android-studio listview

我给了一个id属性: android:id =“ @ + id / animation_layout”
在activity_main.xml的默认布局(编号为1)中

但是当我尝试在MainActivity.java中通过其ID调用它时: ConstraintLayout约束布局= findViewById(R.id.animation_layout);

  • 找不到(编号为2)

我想念什么?

enter image description here

还附上了代码:

<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();

感谢您的帮助:)

1 个答案:

答案 0 :(得分:2)

自新版Android更新以来的某个时间发生!您甚至在xml中提供了ID,但是android的java api仍然无法获取它们!因此您需要执行此步骤!

1:清理构建会删除旧的构建缓存!这应该可以解决问题

enter image description here

2:如果在Java中无法使您的ID变成大包,则可以使用同一菜单中的Rebuild选项!

3:如果仍然不起作用,则可以使用FILE->使缓存无效并重新启动