我想要創建Listview,其中我想爲所有不同的行使用不同的佈局。 那麼我怎樣才能創建自定義適配器爲不同的行設置不同的佈局。Android Listview每行有不同的佈局?
任何幫助將不勝感激。
先謝謝您。
我想要創建Listview,其中我想爲所有不同的行使用不同的佈局。 那麼我怎樣才能創建自定義適配器爲不同的行設置不同的佈局。Android Listview每行有不同的佈局?
任何幫助將不勝感激。
先謝謝您。
創建常規適配器,在create_view函數中根據行類型膨脹行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);
}
感謝您的幫助... –
您需要擴展Adapter
,並覆蓋其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;
}
有關適配器以及如何擴展它們的更多示例,請參閱下面的鏈接。
+1簡潔 – A23149577
檢查這個http://stackoverflow.com/questions/4777272/android-listview-with-different-layout-for-each-row –
使用自定義列表視圖與自定義適配器 – Raghunandan
你可以提供medemo代碼這個 –