2015-11-23 123 views
-1

我的佈局有重複的意見,即一個行有5個按鈕,目前我創建單獨的XML並插入視圖螺母的不同部分現在我很困惑,因爲我不知道如何實現點擊每個按鈕的監聽器,因爲除了容器以外,每個ID都是相同的。android butterknife事件監聽器重複ID

我可以用容器視圖父視圖的幫助下解決這個問題,但我不知道我怎麼可以在這裏使用butterknife

請幫我...

+0

我會讓所有ID的唯一。如果你考慮一個ID的概念,它通常用來識別一個唯一的值。 –

回答

1

我用所有的時間ButterKnife,但我無法真正理解你的問題。你可以給一個代碼示例嗎?

從我調整你有一個行5個按鈕,你不認爲你可以附加一個點擊監聽器?你將不得不一個單獨的ID分配給每個按鈕,然後捕獲與@OnClick方法,像這樣:

@OnClick(R.id.buttonOne) 
public void buttonOneCLicked() { 

} 

@OnClick(R.id.buttonTwo) 
public void buttonTwoCLicked() { 

} 

但我有一種感覺,我誤解你的問題,你能澄清?

編輯:

如果你希望所有的按鈕執行相同的代碼,你既可以調用一個統一的方法,在每個@OnClick方法,或者你可以做它的老式方法。 ButterKnife使用這種技術,因此您的代碼易於閱讀,它旨在附加到每個功能。

在-情況下,你不知道,老式的方式將意味着實現View.OnClickListener您的活動/片段內,然後指定你的每一個觀點,即有一個OnClickListener與

yourView.setOnClickListener(this); 

,如果您像一些視圖不同地處理點擊,然後將該視圖分配給ButterKnife @OnClick,或者在該視圖上設置一個標籤並在onClick onClick上使用if語句進行搜索。

public class YourActivity extends Activity implements View.OnClickListener { 

    @Override 
    public void onClick(View v) { 

    } 
} 

我希望這能回答你的問題。

+0

第一行:ids 1,2,3,4,5第二行:1,2,3,4,5第三行:1,2,3,4,5,所有按鈕id相同,但是它的父視圖id是不同。我使用include語句並在不同的地方插入按鈕。我的問題如何我可以唯一標識每個點擊事件 – Bytecode

+0

@Bytecode你在努力實現什麼?您是否在xml佈局中使用include關鍵字來包含其他佈局,以便它們都是相同的ID? – vguzzi

+0

你的答案的問題是,我必須寫15個方法或@OnClick與15個參數 – Bytecode