每行具有不同布局的Android Listview?
我想创建Listview,在其中我想为所有不同的行创建不同的布局。 那么我如何为不同的行设置不同的布局来创建自定义适配器呢 任何帮助都将不胜感激每行具有不同布局的Android Listview?,android,android-layout,Android,Android Layout,我想创建Listview,在其中我想为所有不同的行创建不同的布局。 那么我如何为不同的行设置不同的布局来创建自定义适配器呢 任何帮助都将不胜感激 提前感谢。创建常规适配器,在“创建视图”功能中,根据行类型展开行xml布局 比如说 @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater) co
提前感谢。创建常规适配器,在“创建视图”功能中,根据行类型展开行xml布局 比如说
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (position % 2 == 0 )
xml_type = R.layout.row_one
else
xml_type = R.layout.row_two
View rowView = inflater.inflate(xml_type, parent, false);
}
您需要扩展
适配器
,并重写其getView
方法
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resource;
// Here you set ‘resource’ with the correct layout, for the row
// given by the parameter ‘position.’
//
// E.g.:
//
// switch (someArray[position].type) {
// case SOME_TYPE_A: resource = R.layout.a; break;
// case SOME_TYPE_B: resource = R.layout.b; break;
// ...
// }
View rowView = inflater.inflate(resource, parent, false);
// Here you initialize the contents of the newly created view.
//
// E.g.:
// switch (resource) {
// case R.layout.a:
// TextView aA = (TextView) rowView.findViewById(R.id.aa);
// aA.setText("View 1");
// ...
// break;
// case R.layout.b:
// TextView bB = (TextView) rowView.findViewById(R.id.bb);
// bB.setText("View 2");
// ...
// break;
// ...
// }
return rowView;
}
有关适配器以及如何扩展适配器的更多示例,请参阅下面的链接