0
我有一個Android XML結構如下。我想當一個子佈局或其內容(TextView或Image)被點擊時,一個clickListener被觸發來做一些動作。問題是佈局是隨機生成的,並且太多以至於沒有單獨的點擊監聽器。實現onClick偵聽器到多個子佈局
解決這個問題的最佳方法是什麼?到目前爲止,我已經設置了子佈局,setClickable(真)和他們的孩子setClickable(假)
//MainLayoutContaining multiple children
<Layout 1 >
//This Layouts here are randomly generated programatically
<Layout Child 1>
<Textview />
<ImageView />
<Textview />
</Layout Child 1>
<Layout Child 2>
<Textview />
<ImageView />
<Textview />
</Layout Child 3>
.
.
.
.
//End of Child Layouts
</Layout 1>
編輯 我有這樣
for(int i=0;i<newsFeedArray.length(); i++){
LinearLayout a = new LinearLayout(getApplicationContext());
a.setOrientation(LinearLayout.VERTICAL);
a.setClickable(true);
a.setOnClickListener(myListener);//New Code From Answer
articleTitle.setText(articleItemTitle.toUpperCase());
articleTitle.setClickable(false);
TextView articleBody = new TextView(getApplicationContext());
articleBody.setText(html2text(articleItemIntrotext));
articleBody.setClickable(false);
a.addView(articleTitle);
a.addView(articleImage);
a.addView(articleBody);
}
一個循環,我現在能檢測每個佈局的onClick。現在我想要的是檢測被點擊的那個子佈局的ID。
儘管這可以在沒有自定義onClickListener類的情況下完成。並且它仍然假定視圖有聽衆設置 – Zoe
@LunarWatcher我沒有得到它,因爲他說'問題是佈局是隨機生成的,並且有太多人沒有單獨的點擊監聽器。「這意味着聽衆在那裏,但他需要在click上添加'someAction',這意味着他需要爲每個視圖聲明onClickListener'太多,不能單獨使用點擊監聽器。或者通過一個on class實現來完成。 –
你基本上可以將該方法複製粘貼到類中並實現'OnClickListener'而不是爲了一個目的創建一個全新的類 – Zoe