Android App

spinner (드롭다운 메뉴) in Android Studio

YunSeong 2021. 8. 23. 13:23
728x90
반응형

https://youtu.be/Ylh4NvkBYP4

1.  array.xml

먼저 app\res\valuesarray.xml을 만들어준다.

1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="test">
        <item>만두</item>
        <item>예에</item>
        <item>에에</item>
    </string-array>
</resources>
cs

그리고 array에 넣고 싶은 변수 종류에 따라서

<string-array>

<integer-array>를 골라서 입력하고

그 array를 호출하기 위한 name도 설정해준다.

그리고 <item>또한 추가해준다.

 


2. activity_main.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <Spinner
        android:layout_width="150dp"
        android:layout_height="40dp"
        android:id="@+id/sp"
        android:entries="@array/test"/>
</LinearLayout>
cs

8~12 - 드롭다운 메뉴를 만들어주기 위해 위와 같이 Spinner 태그를 사용해줘야한다.

       11 - java파일에서 접근하기 위해서 id를 설정해주고

       12 - 원하는 배열을 연결해주기 위해서 android:entries 속성도 설정해준다.

 


3. MainActivity.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package com.example.spinnerexample;
 
import ...
 
 
public class MainActivity extends AppCompatActivity {
 
    Spinner spinner;
    private static final String TAG = "MainActivity";
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        spinner = (Spinner)findViewById(R.id.sp);
 
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                Log.d(TAG, parent.getItemAtPosition(position).toString());
            }
 
            @Override
            public void onNothingSelected(AdapterView<?> parent) {
 
            }
        });
 
    }
}
cs

18~28 - .setOnItemSelectedListener()을 이용해서 spinneritem을 선택했을 때와 선택하지 않았을 때의 이벤트를                 설정 해줄 수 있다.

           20 - 선택했을 때 parent.getItemAtPosition(position)을 통해서 선택한 item을 불러올 수 있다.

 

 

 

728x90
반응형