ImageButton onClick не активирует указанный метод

У меня есть 2 кнопки изображения, которые относятся к тому же методу 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></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">

 </imagebutton></imagebutton></imagebutton></imagebutton></imagebutton></imagebutton></imagebutton></imagebutton></imagebutton></imagebutton></relativelayout>
2 ответа

Почему бы вам не попытаться вызвать событие программно внутри вашего кода, используя метод 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);
 }
}

и удалить android:onClick="openTheBag" с обеих кнопок в xml.


Это может быть опечатка имен ваших методов

openTheBag()

а также

openBag()

?

licensed under cc by-sa 3.0 with attribution.