首页 > 解决方案 > findViewById() 下仅显示一个 ImageButton

问题描述

我正在使用 ImageButtons 进行一个项目以导航到不同的页面。每当我尝试使用 来引用主页按钮findViewById(R.id.HomeButton)时,它都可以工作,但是当我尝试为任何其他按钮执行此操作时,ID 永远不会出现。HomeButton是唯一有效的。有什么解决办法吗?

<ImageButton
    android:id="@+id/HomeButton"
    android:layout_width="70dp"
    android:layout_height="70dp"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="10dp"
    android:src="@drawable/homebutton"
    android:contentDescription="@string/home"
    android:scaleType="fitCenter"
    android:background="#44ba52"
    android:layout_marginLeft="30dp"
    android:layout_marginStart="30dp"
    android:layout_alignParentStart="true"
    android:layout_alignParentLeft="true"/>

<ImageButton
    android:id="@+id/MapButton"
    android:layout_width="70dp"
    android:layout_height="70dp"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="10dp"
    android:src="@drawable/mapbutton"
    android:contentDescription="@string/map"
    android:scaleType="fitCenter"
    android:background="#44ba52"
    android:layout_toEndOf="@+id/HomeButton"
    android:layout_toRightOf="@+id/HomeButton"
    android:layout_toLeftOf="@+id/MenuButton"
    android:layout_toStartOf="@+id/MenuButton"/>

<ImageButton
    android:id="@+id/MenuButton"
    android:layout_width="70dp"
    android:layout_height="70dp"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="10dp"
    android:src="@drawable/menubutton"
    android:contentDescription="@string/menu"
    android:scaleType="fitCenter"
    android:background="#44ba52"
    android:layout_marginRight="30dp"
    android:layout_marginEnd="30dp"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"/>

标签: javaandroidxmlandroid-layoutandroid-studio

解决方案


选项 1.重建您的项目。

选项 2. 使用 ButterKnife 库而不是 findViewById。

1.)导入这个库。实现 'com.jakewharton:butterknife:8.8.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

2) @BindView(R.id.HomeButton) ImageButton homebtn;

@BindView(R.id.MenuButton)
ImageButton menubtn;

@BindView(R.id.MapButton)
ImageButton mapbtn;

之后在 oncreate() 方法中绑定 imageButton... 3) ButterKnife.bind(this);


推荐阅读