Computer >> 컴퓨터 >  >> 프로그래밍 >> Android

안드로이드 ListView에서 요소 존재 여부 확인하는 방법

이 튜토리얼에서는 안드로이드 ListView에서 특정 요소가 이미 존재하는지 확인하는 방법을 단계별로 살펴봅니다.

프로젝트 개요

사용자가 EditText에 값을 입력한 후 버튼을 클릭하면, 해당 값이 ListView 항목 목록에 이미 있는지 검증합니다. 값이 존재하면 "이미 목록에 있습니다"라는 Toast 메시지를 표시하고, 존재하지 않으면 새 항목으로 ListView에 추가합니다.

1단계 — 새 프로젝트 만들기

Android Studio에서 File ⇒ New Project로 이동하여 새 프로젝트를 생성하고, 필요한 모든 세부 정보를 입력합니다.

2단계 — 레이아웃 작성 (activity_main.xml)

res/layout/activity_main.xml 파일에 EditText, Button, ListView를 포함한 레이아웃을 아래와 같이 작성합니다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
   xmlns:tools="https://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical"
   android:gravity="center_horizontal"
   android:layout_marginTop="30dp"
   tools:context=".MainActivity">
   <EditText
      android:id="@+id/edit_query"
      android:layout_width="match_parent"
      android:layout_height="wrap_content" />
   <Button
      android:id="@+id/buttonPanel"
      android:text="Check"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content" />
   <ListView
      android:id="@+id/list"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content">
   </ListView>
</LinearLayout>

위 코드에서는 EditText, Button, ListView를 화면에 배치했습니다. 사용자가 EditText에 값을 입력한 후 버튼을 클릭하면, 입력된 값과 ListView 항목 간의 데이터 유효성 검사가 수행됩니다.

3단계 — MainActivity.java 코드 추가

src/MainActivity.java 파일에 다음 코드를 추가합니다.

package com.example.myapplication;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.Arrays;

public class MainActivity extends AppCompatActivity {
   ListView list;
   String[] mobileArray = {"Android", "IPhone", "WindowsMobile", "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X"};
   EditText edit_query;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      edit_query = findViewById(R.id.edit_query);
      list = findViewById(R.id.list);
      final ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(mobileArray));
      findViewById(R.id.buttonPanel).setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            if(!edit_query.getText().toString().isEmpty()) {
               if(arrayList.contains(edit_query.getText().toString())) {
                  Toast.makeText(MainActivity.this,"Already it is in list",Toast.LENGTH_LONG).show();
               } else {
               arrayList.add(edit_query.getText().toString());
               ArrayAdapter adapter = new ArrayAdapter<String>(MainActivity.this,
               android.R.layout.simple_list_item_1, arrayList);
               list.setAdapter(adapter);
            }
         }
      });

      ArrayAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrayList);
      list.setAdapter(adapter);
   }
}

위 코드의 핵심은 arrayList.contains() 메서드입니다. 버튼 클릭 시 먼저 입력값이 비어 있는지 확인한 뒤, contains()로 목록 내 중복 여부를 판단합니다. 값이 이미 존재하면 Toast로 알리고, 존재하지 않으면 목록에 추가한 후 어댑터를 갱신하여 ListView를 다시 설정합니다.

4단계 — 앱 실행 및 결과 확인

애플리케이션을 실행해 보겠습니다. 실제 안드로이드 기기를 컴퓨터에 연결했다고 가정합니다. Android Studio에서 프로젝트의 액티비티 파일 중 하나를 연 뒤 툴바의 Run 아이콘을 클릭하고, 옵션에서 모바일 기기를 선택하세요. 그러면 모바일 기기에 기본 화면이 표시됩니다.

안드로이드 ListView에서 요소 존재 여부 확인하는 방법

위 결과에서는 ListView에 새 요소를 하나 추가했습니다. 이제 동일한 값을 다시 입력하여 데이터 유효성 검사를 확인해 보겠습니다. 아래와 같이 "Already it is in list(이미 목록에 있음)" 메시지가 표시되며, 중복 추가가 차단됩니다.

안드로이드 ListView에서 요소 존재 여부 확인하는 방법

핵심 정리

ListView 항목의 존재 여부 확인은 복잡한 로직 없이 ArrayList.contains() 한 줄로 처리할 수 있습니다. 빈 입력값 검사 → 중복 검사 → 조건별 처리의 순서만 지키면, 사용자 경험을 해치지 않으면서 깔끔하게 중복 항목을 방지할 수 있습니다.