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.