Adapter Görünümü
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
"Oluştur" yöntemini deneyin
Jetpack Compose, Android için önerilen kullanıcı arayüzü araç setidir. Compose'da düzenlerle nasıl çalışacağınızı öğrenin.
AdapterView
bir
Bağdaştırıcıya yüklenen öğeleri gösteren ViewGroup
. İlgili içeriği oluşturmak için kullanılan
en yaygın bağdaştırıcı türü, dizi tabanlı bir veri kaynağından gelir.
Bu kılavuzda, kurulumla ilgili birkaç temel adımın nasıl tamamlanacağı gösterilmektedir
olmasını sağlar.
Düzeni verilerle doldur
Uygulamanızın kullanıcı arayüzünde oluşturduğunuz düzene veri eklemek için
aşağıdakine benzer:
Kotlin
val PROJECTION = arrayOf(Contacts.People._ID, People.NAME)
...
// Get a Spinner and bind it to an ArrayAdapter that
// references a String array.
val spinner1: Spinner = findViewById(R.id.spinner1)
val adapter1 = ArrayAdapter.createFromResource(
this, R.array.colors, android.R.layout.simple_spinner_item)
adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
spinner1.adapter = adapter1
// Load a Spinner and bind it to a data query.
val spinner2: Spinner = findViewById(R.id.spinner2)
val cursor: Cursor = managedQuery(People.CONTENT_URI, PROJECTION, null, null, null)
val adapter2 = SimpleCursorAdapter(this,
// Use a template that displays a text view
android.R.layout.simple_spinner_item,
// Give the cursor to the list adapter
cursor,
// Map the NAME column in the people database to...
arrayOf(People.NAME),
// The "text1" view defined in the XML template
intArrayOf(android.R.id.text1))
adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
spinner2.adapter = adapter2
Java
// Get a Spinner and bind it to an ArrayAdapter that
// references a String array.
Spinner s1 = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter adapter = ArrayAdapter.createFromResource(
this, R.array.colors, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s1.setAdapter(adapter);
// Load a Spinner and bind it to a data query.
private static String[] PROJECTION = new String[] {
People._ID, People.NAME
};
Spinner s2 = (Spinner) findViewById(R.id.spinner2);
Cursor cur = managedQuery(People.CONTENT_URI, PROJECTION, null, null);
SimpleCursorAdapter adapter2 = new SimpleCursorAdapter(this,
android.R.layout.simple_spinner_item, // Use a template
// that displays a
// text view
cur, // Give the cursor to the list adapter
new String[] {People.NAME}, // Map the NAME column in the
// people database to...
new int[] {android.R.id.text1}); // The "text1" view defined in
// the XML template
adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s2.setAdapter(adapter2);
Projeksiyonda CursorAdapter ile People._ID sütununun kullanılması gerektiğini unutmayın
Aksi takdirde bir istisnayla karşılaşırsınız.
Uygulamanızın kullanım ömrü boyunca Bağdaştırıcınız tarafından okunan temel verileri değiştirirseniz
notifyDataSetChanged()
numarasını aramalısınız. Bu işlem, ekli Görünüme bildirim gönderecek
verilerin değiştirildiğini ve kendi kendine yenilenmesini isteyin.
Not: Android Studio 3.6 ve sonraki sürümlerde,
görüntüleme bağlama özelliği,
findViewById()
çağrısı ve şunlar için derleme zamanı türü güvenliği sağlar:
görüntülemelerle etkileşimde bulunan bir koddur. Bunun yerine görünüm bağlamayı kullanabilirsiniz
findViewById()
Kullanıcı seçimlerini yönetme
Sınıfın AdapterView.OnItemClickListener
üyesini bir işleyiciye ayarlayarak kullanıcının seçimini siz yönetirsiniz ve
dikkat edin.
Kotlin
val historyView: ListView = findViewById(R.id.history)
historyView.onItemClickListener = AdapterView.OnItemClickListener { parent, view, position, id ->
Toast.makeText(context, "You've got an event", Toast.LENGTH_SHORT).show()
}
Java
// Create a message handling object as an anonymous class.
private OnItemClickListener messageClickedHandler = new OnItemClickListener() {
public void onItemClick(AdapterView parent, View v, int position, long id)
{
// Display a messagebox.
Toast.makeText(context,"You've got an event",Toast.LENGTH_SHORT).show();
}
};
// Now hook into our object and set its onItemClickListener member
// to our class handler object.
historyView = (ListView)findViewById(R.id.history);
historyView.setOnItemClickListener(messageClickedHandler);
Daha fazla tartışma için Spinner konusuna bakın.
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-07-27 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2025-07-27 UTC."],[],[],null,["# AdapterView\n\nTry the Compose way \nJetpack Compose is the recommended UI toolkit for Android. Learn how to work with layouts in Compose. \n[Lists and Grids →](/jetpack/compose/lists#lazy) \n\n`AdapterView` is a [`ViewGroup`](/reference/android/view/ViewGroup) that displays items loaded into an adapter. The\nmost common type of adapter comes from an array-based data source.\n\nThis guide shows how to complete several key steps related to setting up\nan adapter.\n\nFill the layout with data\n-------------------------\n\nTo add data into the layout that you create in your app's UI, add code\nsimilar to the following: \n\n### Kotlin\n\n```kotlin\nval PROJECTION = arrayOf(Contacts.People._ID, People.NAME)\n...\n\n// Get a Spinner and bind it to an ArrayAdapter that\n// references a String array.\nval spinner1: Spinner = findViewById(R.id.spinner1)\nval adapter1 = ArrayAdapter.createFromResource(\n this, R.array.colors, android.R.layout.simple_spinner_item)\nadapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)\nspinner1.adapter = adapter1\n\n// Load a Spinner and bind it to a data query.\nval spinner2: Spinner = findViewById(R.id.spinner2)\nval cursor: Cursor = managedQuery(People.CONTENT_URI, PROJECTION, null, null, null)\nval adapter2 = SimpleCursorAdapter(this,\n // Use a template that displays a text view\n android.R.layout.simple_spinner_item,\n // Give the cursor to the list adapter\n cursor,\n // Map the NAME column in the people database to...\n arrayOf(People.NAME),\n // The \"text1\" view defined in the XML template\n intArrayOf(android.R.id.text1))\nadapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)\nspinner2.adapter = adapter2\n```\n\n### Java\n\n```java\n// Get a Spinner and bind it to an ArrayAdapter that\n// references a String array.\nSpinner s1 = (Spinner) findViewById(R.id.spinner1);\nArrayAdapter adapter = ArrayAdapter.createFromResource(\n this, R.array.colors, android.R.layout.simple_spinner_item);\nadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);\ns1.setAdapter(adapter);\n\n// Load a Spinner and bind it to a data query.\nprivate static String[] PROJECTION = new String[] {\n People._ID, People.NAME\n };\n\nSpinner s2 = (Spinner) findViewById(R.id.spinner2);\nCursor cur = managedQuery(People.CONTENT_URI, PROJECTION, null, null);\n\nSimpleCursorAdapter adapter2 = new SimpleCursorAdapter(this,\n android.R.layout.simple_spinner_item, // Use a template\n // that displays a\n // text view\n cur, // Give the cursor to the list adapter\n new String[] {People.NAME}, // Map the NAME column in the\n // people database to...\n new int[] {android.R.id.text1}); // The \"text1\" view defined in\n // the XML template\n\nadapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);\ns2.setAdapter(adapter2);\n```\n\nNote that it is necessary to have the People._ID column in projection used with CursorAdapter\nor else you will get an exception.\n\nIf, during the course of your application's life, you change the underlying data that is read by your Adapter,\nyou should call [notifyDataSetChanged()](/reference/android/widget/ArrayAdapter#notifyDataSetChanged()). This will notify the attached View\nthat the data has been changed and it should refresh itself.\n\n**Note:** With Android Studio 3.6 and higher, the\n[view binding](/topic/libraries/view-binding) feature can replace\n`findViewById()` calls and provides compile-time type safety for\ncode that interacts with views. Consider using view binding instead of\n`findViewById()`.\n\nHandle user selections\n----------------------\n\nYou handle the user's selection by setting the class's [AdapterView.OnItemClickListener](/reference/android/widget/AdapterView.OnItemClickListener) member to a listener and\ncatching the selection changes. \n\n### Kotlin\n\n```kotlin\nval historyView: ListView = findViewById(R.id.history)\nhistoryView.onItemClickListener = AdapterView.OnItemClickListener { parent, view, position, id -\u003e\n Toast.makeText(context, \"You've got an event\", Toast.LENGTH_SHORT).show()\n}\n```\n\n### Java\n\n```java\n// Create a message handling object as an anonymous class.\nprivate OnItemClickListener messageClickedHandler = new OnItemClickListener() {\n public void onItemClick(AdapterView parent, View v, int position, long id)\n {\n // Display a messagebox.\n Toast.makeText(context,\"You've got an event\",Toast.LENGTH_SHORT).show();\n }\n};\n\n// Now hook into our object and set its onItemClickListener member\n// to our class handler object.\nhistoryView = (ListView)findViewById(R.id.history);\nhistoryView.setOnItemClickListener(messageClickedHandler);\n``` \nFor more discussion see the [Spinner](/guide/topics/ui/controls/spinner) topic."]]