Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android imageButton onClick未激活指定的方法_Android_Onclick_Imagebutton - Fatal编程技术网

Android imageButton onClick未激活指定的方法

Android imageButton onClick未激活指定的方法,android,onclick,imagebutton,Android,Onclick,Imagebutton,我有两个图像按钮,它们在单击时引用相同的openTheBag方法。但奇怪的是,当我点击@id/钱包imageButton激活openBug时,@id/red_paint却不能激活openBug,调试器甚至都能看到。这里到底发生了什么,请帮忙。 下面是一段xml <FrameLayout android:id="@+id/frame" android:layout_weight="1.0" android:layout_width="match_parent"

我有两个图像按钮,它们在单击时引用相同的openTheBag方法。但奇怪的是,当我点击@id/钱包imageButton激活openBug时,@id/red_paint却不能激活openBug,调试器甚至都能看到。这里到底发生了什么,请帮忙。 下面是一段xml

    <FrameLayout android:id="@+id/frame" android:layout_weight="1.0"
            android:layout_width="match_parent" android:layout_height="0dip"
            android:background="@drawable/shelf_wall">
            <ImageButton android:id="@+id/purse" android:layout_width="67dp"
                android:layout_height="82dp" android:layout_gravity="right"
                android:contentDescription="@string/bag" android:onClick="openTheBag"
                android:scaleType="fitCenter" android:src="@drawable/purse"
                android:background="@null" />

            <ImageButton android:id="@+id/red_paint"
                android:layout_width="75dp" android:layout_height="112dp"
                android:layout_gravity="right" android:layout_marginRight="10dp"
                android:layout_marginTop="170dp" android:contentDescription="@string/red_paint"
                android:onClick="openTheBag" android:src="@drawable/kyzyl_paint"
                android:scaleType="fitCenter" android:adjustViewBounds="true"
                android:background="@null" />
</FrameLayout>
如果@id/存储相关:

<RelativeLayout android:id="@+id/storage"
        android:layout_width="match_parent" android:layout_height="match_parent"
        android:orientation="horizontal" android:visibility="gone" >

        <ImageButton android:id="@+id/ImageButton07"
            android:layout_width="55dp" android:layout_height="55dp"
            android:layout_alignLeft="@+id/square1"             android:layout_alignTop="@+id/ImageButton03"
            android:adjustViewBounds="true" android:alpha=".4"
            android:src="@drawable/transparent_background" />

        <ImageButton android:id="@+id/ImageButton04"
            android:layout_width="55dp" android:layout_height="55dp"
            android:layout_alignLeft="@+id/ImageButton01"
            android:layout_alignTop="@+id/ImageButton07"
            android:adjustViewBounds="true" android:alpha=".4"
            android:src="@drawable/transparent_background" />

        <ImageButton android:id="@+id/square1"
            android:layout_width="55dp" android:layout_height="55dp"
            android:layout_above="@+id/ImageButton03" android:layout_marginLeft="11dp"
            android:layout_toRightOf="@+id/ImageButton02"
            android:adjustViewBounds="true" android:alpha=".4"
            android:src="@drawable/transparent_background" />

        <ImageButton android:id="@+id/ImageButton01"
            android:layout_width="55dp" android:layout_height="55dp"
            android:layout_alignTop="@+id/square1" android:layout_marginLeft="10dp"
            android:src="@drawable/transparent_background"
            android:layout_toRightOf="@+id/square1" android:adjustViewBounds="true"
            android:onClick="redSplashClicked" />

        <ImageButton android:id="@+id/ImageButton05"
            android:layout_width="55dp" android:layout_height="55dp"
            android:layout_above="@+id/ImageButton03" android:layout_marginLeft="11dp"
            android:layout_toRightOf="@+id/ImageButton01"
            android:adjustViewBounds="true" android:alpha=".4"
            android:src="@drawable/transparent_background" />

        <ImageButton android:id="@+id/ImageButton03"
            android:layout_width="55dp" android:layout_height="55dp"
            android:layout_below="@+id/ImageButton02" android:layout_marginTop="13dp"
            android:layout_toLeftOf="@+id/square1" android:adjustViewBounds="true"
            android:alpha=".4" android:src="@drawable/transparent_background" />

        <ImageButton android:id="@+id/ImageButton09"
            android:layout_width="55dp" android:layout_height="55dp"
            android:layout_alignLeft="@+id/ImageButton05"
            android:layout_alignTop="@+id/ImageButton04"
            android:adjustViewBounds="true" android:alpha=".4"
            android:src="@drawable/transparent_background" />

        <ImageButton android:id="@+id/ImageButton08"
            android:layout_width="55dp" android:layout_height="55dp"
            android:layout_alignTop="@+id/ImageButton05"
            android:layout_centerHorizontal="true" android:adjustViewBounds="true"
            android:alpha=".4" android:src="@drawable/transparent_background" />

        <ImageButton android:id="@+id/ImageButton06"
            android:layout_width="55dp" android:layout_height="55dp"
            android:layout_alignLeft="@+id/ImageButton08"
            android:layout_alignTop="@+id/ImageButton09"
            android:adjustViewBounds="true" android:alpha=".4"
            android:src="@drawable/transparent_background" />

        <ImageButton android:id="@+id/ImageButton02"
            android:layout_width="55dp" android:layout_height="55dp"
            android:layout_alignParentLeft="true" android:layout_alignParentTop="true"
            android:layout_marginLeft="11dp" android:layout_marginTop="10dp"
            android:adjustViewBounds="true" android:alpha=".4"
            android:src="@drawable/transparent_background" />

    </RelativeLayout>

为什么不尝试使用
onClick()
方法在代码中以编程方式调用事件呢。比如:

ImageButton mBtnPurse = (ImageButton) findViewById(R.id.purse);
ImageButton mBtnRedPaint = (ImageButton) findViewById(R.id.red_paint);

mBtnPurse.setOnClickListener(this);
mBtnRedPaint.setOnClickListener(this);
让您的活动实现onClick Listener,然后添加未实现的方法,即onClick方法:

@Override
public void onClick(View v)
{
    if(v == mBtnPurse || v == mBtnRedPaint)
    {
        openTheBag(v);
    }
}

然后从xml中的两个按钮中删除android:onClick=“openTheBag”。

这可能是方法名称的输入错误吗

openTheBag()


对不起,我已经编辑了。打字错误在问题中,而不是在实际的程序中。有趣的是,我得到了与我的原始代码相同的结果。所以我想问题一定出在布局上。idkWhy您需要为openTheBag()方法传递视图吗?有什么具体的原因吗?这样我就可以说出从哪个视图调用该方法:@id/钱包按钮或@id/red\u paint按钮,并采取适当的操作您不需要传递它,直到您将其用于以后的任何使用或在您调用的方法内。onClick方法将管理它。当您放置条件
v==mbtnweek
v==mBtnRedPaint
时,它内部知道哪个视图正在接收单击。
openTheBag()
openBag()