当前位置: 代码迷 >> Android >> Android ImageButton OnClick在同一LinearLayout中调用另一个函数
  详细解决方案

Android ImageButton OnClick在同一LinearLayout中调用另一个函数

热度:116   发布时间:2023-08-04 10:08:15.0

我在一个LinearLayout中有3个ImageButton,问题是单击时,“ @ id / yellow”调用第二个按钮函数,“ @ id / green”调用第三个按钮函数,而“ @ id / brown”调用它自己的按钮代替功能(应该怎么做)。

这是XML:

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="horizontal">


            <ImageButton
                android:id="@+id/yellow"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:scaleX="4"
                android:scaleY="2.5"
                android:layout_marginLeft="13dp"
                android:layout_weight="1"
                android:onClick="yellowPotted"
                android:background="@drawable/ball_yellow"/>

            <ImageButton
                android:id="@+id/green"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:scaleX="4"
                android:scaleY="2.5"
                android:layout_marginLeft="13dp"
                android:layout_weight="1"
                android:onClick="greenPotted"
                android:background="@drawable/ball_green"/>

            <ImageButton
                android:id="@+id/brown"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:scaleX="4"
                android:scaleY="2.5"
                android:layout_marginLeft="13dp"
                android:layout_weight="1"
                android:onClick="brownPotted"
                android:background="@drawable/ball_brown"/>

        </LinearLayout>

这是我活动中的3个功能(我不知道它们是否有用):

public void yellowPotted(View view) {

    Log.d("BALLS", "YELLOW");

}

public void greenPotted(View view) {

    Log.d("BALLS", "GREEN");

}

public void brownPotted(View view) {

    Log.d("BALLS", "BROWN");

}

我已经尝试在我的活动代码中直接使用setOnClickListener()和在新的View.OnClickerListener()重写onClick()方法,但是它也不起作用(完全相同的问题)。

有人知道这可能是什么问题吗?

清理并重建您的项目。

在处理资源时,最有可能是ID的android构建/缓存问题。

我尝试重现您的问题。 我认为这与您设置的比例有关。 我尝试了不同规模和不同背景的代码,它可以正常工作。 尝试使用不同比例的图像。

  相关解决方案