что такое android.R.layout.simple_list_item_1?

Во всех примерах, которые я видел, они просто используют «android.R.layout.simple_list_item_1» при создании ArrayAdapter. Что такое android.R.layout.simple_list_item_1, это просто имя файла макета с именем simple_list_item_1.xml или это идентификатор TextView, необходимый для адаптера массива?

Как просмотреть содержимое файла или использовать собственный файл из папки res?

public class MyClass extends ListActivity {
private String[] titles = {"Test"};

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

    setListAdapter(new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, titles));
     updateList();
}
}

person zcourts    schedule 21.05.2011    source источник
comment
Дубликат stackoverflow.com/questions/3663745/   -  person Nikhil    schedule 21.05.2011


Ответы (3)


android.R.layout содержит все общедоступные макеты, которые ОС Android использует для отображения различных элементов. android.R.layout.simple_list_item_1 — это, как его называют, просто макет для отображения фрагмента текста. Это избавляет вас от необходимости писать простые макеты при использовании адаптеров, а также предоставляет вам собственный внешний вид и тему системы в вашем приложении с минимальными усилиями.

Я включил исходный код из зеркала GitHub репозитория android.git.kernel.org

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2006 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:gravity="center_vertical"
    android:paddingLeft="6dip"
    android:minHeight="?android:attr/listPreferredItemHeight"
/>
person Jake Wharton    schedule 21.05.2011
comment
спасибо за информацию, я знал, что означает R.layout.file, я просто не знал, что они распространяются со всеми андроидами, почему-то я думал, что это образец макета из демонстраций API. - person zcourts; 21.05.2011
comment
На самом деле это код simple_list_item_1.xml. Файл макета, содержащий только один TextView. - person WindRider; 26.11.2012

В Android API есть несколько XML-файлов встроенного макета, и они перечислены на этом изображении.

введите здесь описание изображения

android.R.layout.simple_list_item_1 - один из них, он используется для простого отображения строки.

Вы можете использовать свой собственный макет вместо android.R.layout.simple_list_item_1

например, если вы сделали макет row.xml, вы можете использовать его как

setListAdapter(new ArrayAdapter<String>(this, R.layout.row, titles));
person Dharmendra    schedule 21.05.2011

android.R.layout.simple_list_item_1 — это встроенный ресурс макета, который отображает одну строку. Если вы хотите использовать свой собственный файл макета, вы можете использовать

setListAdapter(new ArrayAdapter<String>(this, R.layout.<your layout filename>, titles));
person Jaydeep Khamar    schedule 21.05.2011