2020/06/08 - [안드로이드] - [안드로이드] 라디오버튼 예제 배경색 바꾸기
이번에는 스피너를 이용해서 배경색을 바꿔보겠습니다. HTML에서는 드롭다운리스트, 셀렉트박스라고 불리고 있습니다.
actvity_main.xml
Spinner이라는 태그안에 colorType라는 id를 사용했습니다.
java(백그라운드)에서 접근하기 위해서는 id가 필수입니다.
<?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">
<LinearLayout
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Spinner
android:id="@+id/colorType"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:textSize="15sp"
/>
</LinearLayout>
</LinearLayout>
MainActivity.java
1. 배경색을 바꿀 레이아웃 객체와 배경색을 바꾸게 할 스피너 객체 생성
2. 스피너에 들어갈 배열 생성
3. 배열 어뎁터를 생성 및 설정
4. 스피너에 배열 어뎁터 등록
5. 스피너 아이템 선택시 이벤트 생성
import androidx.appcompat.app.AppCompatActivity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.Spinner;
import static android.R.layout.simple_spinner_item;
public class MainActivity extends AppCompatActivity {
//레이아웃 선언
LinearLayout layout;
//스피너에 담을 데이터 생성
private String[] colors = {"빨강", "파랑", "초록"};
//스피너 선언
Spinner colorSpinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//레이아웃 객체생성
layout = findViewById(R.id.layout);
//스피너 객체 생성
colorSpinner = findViewById(R.id.colorType);
//배열 어뎁터 생성및 설정
ArrayAdapter<String> colorsAdapter = new ArrayAdapter<String>(this, simple_spinner_item, colors);
colorsAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//스피너에 어뎁터 셋팅
colorSpinner.setAdapter(colorsAdapter);
//스피너 아이템 선택시 이벤트
colorSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if(colors[position].equals("빨강")){
layout.setBackgroundColor(Color.rgb(255,0,0));
}
else if(colors[position].equals("파랑"))
{
layout.setBackgroundColor(Color.rgb(0,0,255));
}
else if(colors[position].equals("초록"))
{
layout.setBackgroundColor(Color.rgb(0,255,0));
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) { }
});
}//onCreate()
}
[안드로이드] 스위치(Switch) 텍스트뷰 색상변경 (0) | 2020.06.11 |
---|---|
[안드로이드] 현재 WIFI 네트워크 상태 알아보기 manager.getActiveNetworkInfo() (0) | 2020.06.10 |
[안드로이드]버튼클릭 랜덤숫자 생성 랜덤 배경색 바꾸기 Math.random() (0) | 2020.06.08 |
[안드로이드] 라디오버튼 예제 배경색 바꾸기 setOnCheckedChangeListener (0) | 2020.06.08 |
[안드로이드] 라디오버튼 예제 RadioGroup RadioButton setOnCheckedChangeListener (0) | 2020.06.07 |
댓글 영역