0

我創建了兩個片段:如何知道點擊了哪個按鈕?

<fragment 
    android:name="BoxFragment" 
    android:layout_width="150dp" 
    android:layout_height="80dp" 
    android:id="@+id/box_fragment_1" 
    android:layout_below="@+id/box_fragment_2" 
    android:layout_alignParentStart="true" 
    android:layout_marginTop="42dp"  
    tools:layout="@layout/fragment_box" /> 

<fragment 
    android:layout_width="150dp" 
    android:layout_height="50dp" 
    android:id="@+id/box_fragment_2" 
    android:layout_centerVertical="true" 
    android:layout_alignParentStart="true"   
    tools:layout="@layout/fragment_box" /> 

這個片段的佈局:

<ImageButton 
    android:layout_width="197dp" 
    android:layout_height="197dp" 
    android:id="@+id/ibPress" 
    android:layout_gravity="center" /> 

所以,我註冊OnClickListener:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 
    View view= inflater.inflate(R.layout.fragment_box, container, false); 

    ImageButton imageButton= (ImageButton) view.findViewById(R.id.ibPress); 
    imageButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Log.i(LOG_TAG,this.toString()); 
      //how to know,wich button clicked? 
      presenter.onButtonClick(...?); 
     } 
    }); 
    return view; 
} 

所以,我想從是什麼片段按鈕知道何苦呢? 我是否需要參考查看presenter.onButtonClick? 在演示者,我想知道什麼按鈕被按下,然後做一些工作。

謝謝!

+0

第二個片段是否應該沒有「name」標籤? – 0X0nosugar

回答

3

然後你可以使用switch case你也能夠對特定片段的標識或標籤的行動,方法修改presenter.onButtonClick()通過 presenter.onButtonClick(int fragmentId)或​​ 。

1

您可以使用getId()獲取當前點擊視圖的id。請參見下面的代碼。

imageButton.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     switch(v.getId()) { 
     case R.id.b1: 
      // it was the first button 
      break; 
     case R.id.b2: 
      // it was the second button 
      break; 
     } 
    } 
} 

請閱讀docs瞭解更多信息。

+1

我不認爲海軍上將是這個意思。他的查詢是不同的。 –

+0

@ShadabAnsari不太確定..可以..讓我們迴應..我們等到那時..:p – Lal

相關問題