[英]How can i make a ListView with three different row layouts?
我正在做一个listView,我想膨胀三种不同的布局。 每行示例都有一个条件:如果x ==“ F”,则R.layout.row1应该被充气,如果x ==“ t”,R.layout.row2应该被充气,我有三行。尝试使用
@Override
public int getViewTypeCount() {
return 3;
}
//
@Override
public int getItemViewType(int position) {
objBean = items.get(position);
if (objBean.gettype() == "I") {
return layout2;
} else if (objBean.gettype() == "F") {
return layout1;
} else {
return layout3;
}
return i;
}
并在getview方法中
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View view = convertView;
final ViewHolder holder;
objBean = items.get(position);
int type = getItemViewType(position);
String t = objBean.gettype();
// if(i == 0){
if (view == null) {
LayoutInflater inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (type == layout2) {
view = inflater.inflate(R.layout.row1, null);
} else if (type == layout1) {
view = inflater.inflate(R.layout.list, null);
} else{
view = inflater.inflate(R.layout.twitter, null);
}
holder = new ViewHolder();
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
哪里
int layout1 = 0;
int layout2 = 1;
int layout3 = 2;
得到答案,问题出在if语句中,它没有执行。 我变了
@Override
public int getItemViewType(int position){
objBean = items.get(position);
if (objBean.gettype() == "I") {
return layout2;
} else if (objBean.gettype() == "F") {
return layout1;
} else {
return layout3;
}
return i;
}
至
@Override
public int getItemViewType(int position) {
objBean = items.get(position);
String check = objBean.gettype().toString();
int k = objBean.getflag();
if (check.equals("F")) {
return layout1;
} else if (check.equals("T")) {
return layout3;
} else {
return layout2;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.