커스텀 뷰를 사용중이고 커스텀어댑터에 아래소스와 같이 getView를 만들었는데 view.findViewById(R.id.dicisionBtn)에서 Null이 나옵니다. dicisionBtn은 해당 리스트뷰를 포함하는 뷰에 있기때문에, Null이 나오는 이유는 이해는 갑니다만,, 그렇다면 여기서 어떤 방식으로 체크가 됬을때의 이벤트 처리를 통해 버튼의 활성화 유무를 제어 할 수 있을까요??
@Override
public View getView(int position, View convertView, ViewGroup parent) {
MonitorItemListView monitorItemListView = null;
view = convertView;
if(view == null) {
view = LayoutInflater.from(mContext).inflate(R.layout.listview_monitor_item_list, parent, false);
monitorItemListView = new MonitorItemListView(view);
view.setTag(monitorItemListView);
}
monitorItemListView = (MonitorItemListView) view.getTag();
MonitorBean MonitorItemData = (MonitorBean) getItem(position);
if(MonitorItemData != null) {
monitorItemListView.GetArticle().setText(MonitorItemData.getArticle());
monitorItemListView.GetUnit().setAdapter(MonitorItemData.getUnit());
monitorItemListView.GetViewCheckedItem().setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
view.findViewById(R.id.dicisionBtn).setEnabled(true);
view.findViewById(R.id.dicisionBtn).getBackground().setColorFilter(null);
} else {
view.findViewById(R.id.dicisionBtn).setEnabled(false);
view.findViewById(R.id.dicisionBtn).getBackground().setColorFilter(Color.GRAY, Mode.MULTIPLY);
}
}
});
monitorItemListView.GetGraphCheckedItem();
monitorItemListView.GetRangeMin().setText(MonitorItemData.getRangeMin());
monitorItemListView.GetRangeMax().setText(MonitorItemData.getRangeMax());
}
return view;
}