Google은 흑인 공동체를 위한 인종 간 평등을 진전시키기 위해 노력하고 있습니다. Google에서 어떤 노력을 하고 있는지 확인하세요.

AdapterView

AdapterView는 어댑터에 로드된 항목을 표시하는 ViewGroup입니다. 가장 일반적인 어댑터 유형은 배열 기반 데이터 소스에서 가져옵니다.

이 가이드에서는 어댑터 설정과 관련된 몇 가지 주요 단계를 완료하는 방법을 설명합니다.

데이터로 레이아웃 채우기

앱 UI에서 만든 레이아웃에 데이터를 추가하려면 다음과 유사한 코드를 추가합니다.

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
    

자바

    // 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);
    

CursorAdapter와 함께 사용하는 투영에서 People._ID 열을 사용해야 합니다. 그렇지 않으면 예외가 발생합니다.

애플리케이션의 수명 기간 동안 어댑터에서 읽은 기본 데이터를 변경하면 notifyDataSetChanged()를 호출해야 합니다. 연결된 보기에 데이터가 변경되었으며 새로 고쳐야 함을 알립니다.

사용자 선택 처리

클래스의 AdapterView.OnItemClickListener 멤버를 리스너로 설정하고 선택사항을 변경하여 사용자 선택을 처리합니다.

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()
    }
    

자바

    // 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);
    

자세한 내용은 스피너 주제를 참조하세요.