나는 세 가지 다른 레이아웃을 부풀리기 위해 custom listView를 가지고있다.ListView에서 세 가지 레이아웃을 어떻게 확장 할 수 있습니까?
내가 많은 질문을 보았다 그러나 그들은 짝수와 홀수 위치를하지만 내 목록보기에서 모두 목록보기로 팽창한다 레이아웃이 다른 조건에 따라 달라
같은 동적 경우 (내가 == 0) 첫 번째 레이아웃이 비정상적으로 늘어나고 두 번째 것 (i == 1)이 두 번째 등등이됩니다.
변수 "i"는 주 활동에서 얻는 값과 같습니다.
public class SocialListAdapter extends ArrayAdapter<Item> {
private Activity activity;
private List<Item> items;
private Item objBean;
private int row;
private int i;
public SocialListAdapter(Activity act, int resource, List<Item> arrayList) {
super(act, resource, arrayList);
// TODO Auto-generated constructor stub
this.activity= act;
this.items = arrayList;
this.row = resource;
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public int getItemViewType(int position) {
return position;
}
@Override
public int getCount() {
return items.size();
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View view = convertView;
ViewHolder holder;
objBean = items.get(position);
i = objBean.getI();
if (view == null) {
LayoutInflater inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if(i == 0){
view = inflater.inflate(R.layout.list, null);
} else if (i == 1){
view = inflater.inflate(R.layout.row1, null);
}
holder = new ViewHolder();
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
이 코드 만 힘 작업을 시도
... 내가
3 가지 레이아웃을 지원하려면 'getViewTypeCount()'에 2를 반환하는 것이 좋습니다. 또한,'getItemViewType (int position)'은'position'에 의해 주어진 행에 표시하고자하는 유형에 고유 한 값을 반환해야합니다. 즉, 타입 수가 3이면, * n *이 아닌 해당 메소드에서 3 가지 값만 반환해야합니다. –