728x90
안녕하세요,
오늘은 ChipGroup 에 +버튼을 만들고, 동적으로 Chip 을 추가하는 예제를 만들어보도록 하겠습니다.
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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<com.google.android.material.chip.ChipGroup
android:id="@+id/chipGroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:singleLine="false"
app:chipSpacing="8dp" />
</LinearLayout>
MainActivity.java
public class MainActivity extends AppCompatActivity {
private ChipGroup chipGroup;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
chipGroup = findViewById(R.id.chipGroup);
addPlusChip();
}
// "+" Chip 추가
private void addPlusChip() {
Chip plusChip = new Chip(this);
plusChip.setText("+");
plusChip.setChipIconTintResource(android.R.color.darker_gray);
plusChip.setCloseIconVisible(false);
plusChip.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showInputDialog();
}
});
chipGroup.addView(plusChip);
}
// 다이얼로그 표시
private void showInputDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("새로운 Chip 추가");
final EditText input = new EditText(this);
input.setHint("텍스트 입력...");
builder.setView(input);
builder.setPositiveButton("추가", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String chipText = input.getText().toString().trim();
if (!chipText.isEmpty()) {
addChip(chipText);
dialog.dismiss();
}
}
});
builder.setNegativeButton("취소", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.show();
}
// Chip 추가
private void addChip(String text) {
Chip chip = new Chip(this);
chip.setText(text);
chip.setCloseIconVisible(true);
// Chip 삭제 기능 추가
chip.setOnCloseIconClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
chipGroup.removeView(chip);
}
});
// 기존 "+" Chip 제거 후 추가
chipGroup.removeViewAt(chipGroup.getChildCount() - 1);
chipGroup.addView(chip);
addPlusChip();
}
}
시연영상 입니다.
'안드로이드 자바' 카테고리의 다른 글
[Java][Android]Web3j 활용해 키쌍 생성하기 (0) | 2025.04.04 |
---|---|
[Java][Android] MotionLayout 활용하기 (0) | 2025.04.01 |
[Java][Android] CountDownTimer 활용해 간단한 타이머 만들기 (0) | 2025.03.25 |
[Java][Android] 다크모드 적용하기 (0) | 2025.03.18 |
[Java][Android] Toolbar 사용해 상단바 만들기 (0) | 2025.03.11 |