Есть ListView на Activity, есть массив данных(контактный лист) который необходимо отобразить в ListView. Как отобразить элементы массива по разному?
contacts - это строка json
contactsList = new ArrayList<HashMap<String, String>>();
lv_contacts = (ListView) findViewById(R.id.lv_contacts);
try {//Считаем контакты и заносим в contactsList
mArray = new JSONArray(contacts);
for (int i = 0; i < mArray.length(); i++) {
JSONObject mJsonObject = mArray.getJSONObject(i);
HashMap<String, String> map = new HashMap<String, String>();
map.put("cid", mJsonObject.getString("cid"));
map.put("name", mJsonObject.getString("name"));
contactsList.add(map);
}
} catch (JSONException e) {
e.printStackTrace();
}
ListAdapter adapter = new SimpleAdapter(
ContactsActivity.this, contactsList, R.layout.item_contactslist,
new String[] { "cid","name"}, new int[] { R.id.cid, R.id.name });
lv_contacts.setAdapter(adapter);
Код item_contactslist.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/list_item"
android:gravity="center_vertical">
<TextView
android:id="@+id/cid"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone" />
<TextView
android:id="@+id/name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="6dp"
android:paddingLeft="6dp"
android:textSize="17sp"
android:textStyle="bold" />
</LinearLayout>
как сделать к примеру каждый второй контакт другим стилем? Или второй отображать с выравниванием по правому краю? или с * перед именем?
Использовать несколько layout-ов .xml? или все в одном можно реализовать?