상세 컨텐츠

본문 제목

[안드로이드] Material Dropdown menu 쉽게 만드는 방법

안드로이드

by aries574 2021. 12. 13. 12:26

본문


2021.12.12 - [안드로이드] - [안드로이드] custom spinner 만드는 방법

 

[안드로이드] custom spinner 만드는 방법

이번 시간에는 스피너를 내맘대로 바꿔보겠습니다. 미리 알아보자면 아이콘 넣기, 글씨색깔 바꾸기, 배경색상 바꾸기 정도 입니다. 1. 데이터 담을 클래스 만들기 (Fruit.java) public class Fruit{ private

aries574.tistory.com

 

이번 시간에는 Material Design을 통해 Dropdown menu를 만들어 보겠습니다.

1. 라이브러리 등록

build.gradle(Module:프로젝트명:app)

dependencies 괄호 안에 아래 코드를 넣어주시면 됩니다.

implementation 'com.google.android.material:material:1.4.0'

2020.12.19 - [안드로이드] - [안드로이드]라이브러리 찾아 등록하는 방법

 

[안드로이드]라이브러리 찾아 등록하는 방법

2020/12/18 - [안드로이드] - [안드로이드]TextSwitcher 글자변환 애니메이션 만들어보기 이번 시간에는 안드로이드 개발을 하면서 원하는 기능을 쓰기 위해 라이브러리를 찾아서 등록하는 방법을 알아

aries574.tistory.com

 

2. 테마 수정 themes.xml

( res -> value -> themes)

style 태그 속성 parent를 아래 코드로 변경해주시면 됩니다.

<style name="Theme.MaterialExam" parent="Theme.MaterialComponents.DayNight.DarkActionBar">

 

3. 아이템 리스트 화면 만들기 (item_list.xml)

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Sample"
    android:padding="16dp"
    android:layout_margin="2dp">

</TextView>

 

 

4. 메인화면 구성 (activity_main.xml)

<?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"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <com.google.android.material.textfield.TextInputLayout
        android:id="@+id/inputLayout"
        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:hint="아이템을 선택하세요."
        android:padding="20dp">

        <AutoCompleteTextView
            android:id="@+id/text_item"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="none" />
    </com.google.android.material.textfield.TextInputLayout>


    <TextView
        android:id="@+id/text_show_item"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:layout_marginTop="20dp"
        android:gravity="center"
        android:text="아이템"
        android:textSize="20sp" />
</LinearLayout>

 

5. 메인코드 기능구현 (MainActivity.java)

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.material.textfield.TextInputLayout;


public class MainActivity extends AppCompatActivity {

    TextInputLayout textInputLayout;
    AutoCompleteTextView autoCompleteTextView;

    TextView textShowItem;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textInputLayout = findViewById(R.id.inputLayout);
        autoCompleteTextView = findViewById(R.id.text_item);
        textShowItem = findViewById(R.id.text_show_item);

        
        String[] items = {"item1", "item2", "item3", "item4", "item5"};
        ArrayAdapter<String> itemAdapter = new ArrayAdapter<>(MainActivity.this,
                R.layout.item_list, items);
        autoCompleteTextView.setAdapter(itemAdapter);


        autoCompleteTextView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
                textShowItem.setText((String)adapterView.getItemAtPosition(position));
            }
        });
    }
}

 

6 실행화면

2021.12.11 - [안드로이드] - [안드로이드] 동적으로 스피너(Spinner)에 데이터 넣는 방법

 

[안드로이드] 동적으로 스피너(Spinner)에 데이터 넣는 방법

이번 시간에는 셀렉트 박스, 콤보 박스라고 불리며, 안드로이드에서는 스피너(Spinner)를 미리 데이터를 넣어서 사용하는 게 아닌 사용자가 동적으로 데이터를 입력해서 보여주는 방법을 알아보

aries574.tistory.com

2021.12.10 - [안드로이드] - [안드로이드] TextView 클릭 시 효과(ripple)주는 방법

 

[안드로이드] TextView 클릭 시 효과(ripple)주는 방법

1. 이번 시간에는 텍스트뷰를 클릭 시에 효과를 주는 방법에 대하여 알아보겠습니다. 1. 테마 아이템 추가 themes.xml style태그 안에 아래 코드를 입력하시면 됩니다. @color/purple_200 2. 색상 정보 colors.

aries574.tistory.com

2021.12.08 - [안드로이드] - [안드로이드] Material Design EditText 쉽게 만드는 방법

 

[안드로이드] Material Design EditText 쉽게 만드는 방법

이번 시간에는 Material Design을 통해서 EditText를 깔끔하게 만들어 보도록 하겠습니다. 1. 라이브러리 등록 build.gradle(Module:프로젝트명:app) dependencies 괄호 안에 아래 코드를 넣어주시면 됩니다. impl..

aries574.tistory.com

 

반응형

관련글 더보기

댓글 영역