【我想在activity裡獲取到這個Button】 這樣的設計初衷是有問題的,因為button是多個的,獲取的是哪一個呢?
所正確的做法是在 ExpandableListAdapter中 getChildView中 通過findViewById來的到button之後再對button設置listenner.
比如:
getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
if (convertView == null) {
創建convertView
}
Button button = convertView.findViewById(R.id.button);
button.setOnClickListenner(new View.OnClickListenner() {
onClicke(View v) {
書寫你的代碼
}
}
);
}
當然這裡也可以使用Holder的方式來獲取button.大同小異。
如果你的使用方式是上面的 那就可以解決你的問題。
但是 也可能你的需求 就是要獲取某個button進行特殊的處理,那麼這種特殊的需求,需要特殊處理。
你需要對button設置Tag.
也就是在 getChildView中 得到button後使用 button.setTag(buttonTag),然後在Activity中使用ExpandListView.findViewByTag(buttonTag) 來獲取。
希望對你有所幫助