Я пишу приложение, которое содержит несколько простых представлений; сначала это всего лишь две кнопки. каждая кнопка ведет к карте, и с этой карты появляется кнопка, которая открывает список зданий на сайте. Отсюда пользователь сможет выбрать здание и просмотреть подробную информацию о нем (как и список контактов на самом деле). До сих пор, я могу заполнить ListView, создавая массив строк для его заполнения его непосредственно в деятельности, например, так:Использование текстовых файлов и строк, определенных XML, для заполнения списков
public class BuildingsActivity extends ListActivity {
static final String[] buildings=new String[]{
"Building 1",
"Building 2",
"Building 3",
"Building 4",
"Building 5"
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_buildings);
// Show the Up button in the action bar.
getActionBar().setDisplayHomeAsUpEnabled(true);
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,buildings));
}
Это работает все хорошо для списка в 5 пункт, но это окончательная форма, список может содержать до ста зданий, и у меня есть 2 проблемы: 1) Столбец длиной в сто строк будет выглядеть действительно грубо определенным в коде, как это 2) Я беспокоюсь о том, как долго приложение должно открыть действие, если оно должно заранее создать такой большой список строковых значений.
Чтобы избежать этого, у меня возникла идея определить эту строку в массиве strings.xml и назначьте строки в макете списка в соответствующем формате XML для активности списка. Однако это пока не работает; нет ошибок, но команда android: entries не видит влияния на макет вообще. Это XML. Если кто-то знает о заполнении списка таким образом, я был бы признателен за ваши ответы.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".BuildingsActivity" >
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/buildings">
</ListView>
</RelativeLayout>
Моя другая альтернатива, чтобы извлечь его из текстового файла, который я должен буду сделать для строительных деталей (как объем текста слишком велик, чтобы беспокоить сохранение в виде строк), но хотела бы избежать в список , По общему признанию, я не изучил этот маршрут очень интенсивно (так как я еще не хотел его использовать, и на основании того, что я видел на других форумах, это выглядит сложно, но если есть много поддержки этого метода, то я обязательно оцените любые советы по его использованию.
Простите меня, если какое-либо из этого уже было освещено в других потоках. Я искал похожие темы, но никто, похоже, не захотел заполнить список таким образом и много языка из их вопросы перешли мне в голову (я очень новичок ... это мое первое реальное приложение, помимо проработки некоторых из обучающих программ на веб-сайте разработчика.
При использовании 'android: entries =" @ array/buildings "' вы меняете Адаптер для ListView в исходном коде? –
Использование андроида: записи, у меня нет адаптера ... текст для каждого элемента списка определяется в макете, поэтому для заполнения списка не используется адаптер. У меня сейчас это работает, но я не могу понять, как обрабатывать выбор элемента без использования адаптера. –