2013-10-06 22 views
0

我有2個圖像按鈕引用相同的openTheBag方法onClick。但是我現在無法得到我的頭的奇怪的事情是,當我點擊@ id /錢包imageButton激活openBug,但@ id/red_pa​​int不會被調試器看到。這裏發生了什麼,請幫助。 這是一塊xml。imageButton onClick沒有激活指定的方法

<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 /存儲是相關的:

<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

你爲什麼不嘗試編程調用事件使用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"

+0

有趣的是,我得到了和我原來的代碼一樣的結果。所以這個問題必須在佈局上我猜。 idk – Nazerke

+0

爲什麼你需要通過openTheBag()方法的視圖?有什麼具體原因嗎? – 2013-10-08 04:55:08

+0

,這樣我就可以說從@ id/purse按鈕或@ id/red_pa​​int按鈕調用哪個視圖,並採取適當的操作 – Nazerke

0

難道是你的方法名

openTheBag() 

openBag() 

的錯字?

+0

對不起,我編輯過。錯字是在問題中,而不是在實際的程序中 – Nazerke