我有两个图像按钮,它们引用了相同的openTheBag方法onClick。但是我现在无法理解的奇怪之处在于,当我点击@ id / purse时,imageButton会激活openBug,但@ id / red_paint甚至不能被调试器看到。这里发生了什么,请帮忙。 这是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>
以下是方法openTheBag():
public void openTheBag(View view)
{
RelativeLayout storage = (RelativeLayout)this.findViewById(R.id.storage);
storage.setVisibility(View.VISIBLE);
}
如果@ id / storage是相关的:
<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>
答案 0 :(得分:0)
为什么不尝试使用onClick()
方法在代码中以编程方式调用事件。类似的东西:
ImageButton mBtnPurse = (ImageButton) findViewById(R.id.purse);
ImageButton mBtnRedPaint = (ImageButton) findViewById(R.id.red_paint);
mBtnPurse.setOnClickListener(this);
mBtnRedPaint.setOnClickListener(this);
让你的活动实现onClickListener,然后添加未实现的方法,这是onClick方法:
@Override
public void onClick(View v)
{
if(v == mBtnPurse || v == mBtnRedPaint)
{
openTheBag(v);
}
}
并从xml中的两个按钮中删除android:onClick="openTheBag"
。
答案 1 :(得分:0)
这可能是您的方法名称的错字
openTheBag()
和
openBag()