Задать вопрос
@relgames
Java Developer

Разработка под Android: как сделать Activity по типу Настройки -> О телефоне -> Общая информация?

Перерыл кучу документации, не могу понять, как сделать простейший таск: нужно нарисовать caption-value список, чтобы было типа как в стандартном приложении Настройки -> О телефоне -> Общая информация (пример)


Вроде как это ListView, по-идее, нужен какой-то адаптер, но стандартные адаптеры рисуют список из 1 значения, а у меня 2 значения — одно заголовок, большим шрифтом, и еще одно маленьким шрифтов. Получает, нужно писать свой адаптер, плюс нужно писать свой xml для строки… Как-то странно много действий для того, что выглядит как стандартный элемент системы (такой список много где видел).


Задача вроде как простая, но вот ступор, не могу что-то сообразить…
  • Вопрос задан
  • 3450 просмотров
Подписаться 3 Оценить Комментировать
Ответ пользователя palmut К ответам на вопрос (7)
palmut
@palmut
А вот такой вариант не подойдет?

Это код активити:
public class TestActivity extends ListActivity {

	private final static String TITLE_KEY = "title";
	private final static String DESCRIPTION_LEY = "description";

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		List<Map<String, String>> data = new ArrayList<Map<String, String>>();
		int count = 10;
		for (int i = 1; i <= count; i++) {
			final HashMap<String, String> item = new HashMap<String, String>();
			item.put(TITLE_KEY, String.format("Title %d", i));
			item.put(DESCRIPTION_LEY, String.format("Description %d", i));
			data.add(item);
		}

		setListAdapter(new SimpleAdapter(this, data, android.R.layout.simple_list_item_2, new String[] { TITLE_KEY,
						DESCRIPTION_LEY }, new int[] { android.R.id.text1, android.R.id.text2 }));
	}

}


А это код лейаута mail.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1" />

    <TextView
        android:id="@android:id/empty"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:text="No data" />

</LinearLayout>
Ответ написан