0
listviews 용 어댑터를 작성했습니다. 속성을 기반으로 다른 레이아웃으로 뷰의 일부 요소를 그려야합니다.BaseAdapter 문제 목록보기가있는 getView (int position)
그래서 내가 어댑터와의 getView (INT 위치) 내가 property.get을 확인 (위치)에 두 개의 ArrayList의 데이터와 ArrayList의 속성을 통과
이 문제는 그 위치 전체에 관련하지 않는 것입니다 목록에만 있지만 현재보기에 따라 변경되는 부분 (예 : 스크롤)
원하는 효과를 얻으려면 어떻게해야합니까? 문제가 데이터 arraylist에 영향을 미치지 않는 이유는 무엇입니까? getItemViewType
및 getViewTypeCount
의
@Override
public View getView(int position, View view, ViewGroup parent) {
/**
* Holder mantiene una reference all'albero delle views per evitare chiamate continue di findiViewById
*/
ViewHolder holder;
if (view == null){
/** si usa inflate solo se è null */
holder = new ViewHolder();
if (!lemon.get(position)){
view = mInflater.inflate(R.layout.contact_layout, null);
holder.name = (TextView) view.findViewById(R.id.contact_name);
}else {
view = mInflater.inflate(R.layout.contact_lemon_layout, null);
holder.name = (TextView) view.findViewById(R.id.contact_name);
}
view.setTag(holder);
}else {
holder = (ViewHolder) view.getTag();
}
holder.name.setText(names.get(position));
return view;
}
감사합니다. 어떻게 뷰 유형을 설정합니까? 그냥 getView에서 동일한 작업을 수행 할 수있는 방법이 있는지 알고 싶습니까? – codareee
그게 전부입니다. 당신은 static int TYPE_LEMON = 0과 0과 1 대신 static int TYPE_NOT_LEMON = 1을 사용해야합니다. getView에서 getItemViewType (position)을 사용하여 팽창 할 것을 선택하고 뷰를 준비하는 방법을 선택하기 만하면됩니다. 하지만 어쨌든이 두 함수 만 추가하면 코드가 완벽하게 작동합니다. 도움을 주신 덕분에 –
해결되었습니다. – codareee