CĂN BẢN
INTENTS
GIAO DIỆN
CÁC KHÁI NIỆM
VÍ DỤ
TÀI LIỆU
HỌC LẬP TRÌNH ANDROID
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

SearchView trong Android

SearchView là một thành phần giao diện người dùng quan trọng trong Android cho phép người dùng tìm kiếm nội dung trong ứng dụng của bạn. Trong bài viết này, chúng ta sẽ giới thiệu khái niệm, vai trò, phân tích các thuộc tính, cách sử dụng và đưa ra ví dụ minh họa về SearchView trong Android.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

1. Giới thiệu về SearchView trong Android

SearchView là một thành phần giao diện người dùng cho phép người dùng nhập từ khóa tìm kiếm và tìm kiếm nội dung trong ứng dụng của bạn. SearchView cung cấp một giao diện người dùng trực quan và tiện lợi để tìm kiếm nội dung và cũng có thể tích hợp với các thành phần khác như RecyclerView hoặc ListView để hiển thị kết quả tìm kiếm.

searchview jpg

Việc tích hợp SearchView vào ứng dụng giúp cải thiện trải nghiệm người dùng bằng cách tăng khả năng tìm kiếm và truy cập nội dung của ứng dụng của bạn. Nó cũng giúp giảm thiểu thời gian và công sức cần thiết để tìm kiếm thông tin, tăng tính tiện lợi cho người dùng.

Bài viết này được đăng tại [free tuts .net]

2. Các thuộc tính của SearchView trong Android

SearchView có nhiều thuộc tính khác nhau để tùy chỉnh và điều chỉnh hiệu quả. Sau đây là một số thuộc tính quan trọng của SearchView:

  • android:iconifiedByDefault: xác định xem SearchView có được hiển thị ở trạng thái mở rộng hay thu gọn khi được tạo ra.
  • android:queryHint: xác định văn bản mô tả cho ô tìm kiếm, dựa trên giá trị đặt sẵn.
  • android:layout_widthandroid:layout_height: xác định kích thước của SearchView.
  • android:imeOptions: cho phép tùy chỉnh hành vi bàn phím khi nhập liệu vào ô tìm kiếm.
  • android:inputType: xác định loại dữ liệu đầu vào được chấp nhận bởi SearchView.
  • android:iconified: xác định xem SearchView có được hiển thị ở trạng thái mở rộng hay thu gọn.

Để hiểu hơn về các thuộc tính của SearchView trong Android, chúng ta sẽ tìm hiểu đến cách sử dụng của nó.

3. Cách sử dụng của SearchView trong Android

Để sử dụng SearchView trong ứng dụng của bạn, bạn cần thêm SearchView vào layout XML của bạn.Sau đó, bạn có thể tìm kiếm dữ liệu bằng cách bắt sự kiện setOnQueryTextListener() của SearchView.

Sau đây là ví dụ cụ thể về SearchView trong Android để có thể tìm kiếm các bài hát trong list các bài hát.

Đầu tiên chúng ta cần tạo một layout cho activity chứa SearchView và ListView để hiển thị danh sách các bài hát.

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <SearchView
        android:id="@+id/searchView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:queryHint="Search songs..." />

    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:divider="@null"
        android:dividerHeight="0dp"
        android:scrollbars="vertical" />

</LinearLayout>

Tiếp theo, chúng ta cần tạo một Adapter để hiển thị danh sách các bài hát.

SongAdapter.java

public class SongAdapter extends BaseAdapter {
    private ArrayList<String> songs;
    public SongAdapter(ArrayList<String> songs) {
        this.songs = songs;
    }

    @Override
    public int getCount() {
        return songs.size();
    }

    @Override
    public Object getItem(int position) {
        return songs.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            convertView = LayoutInflater.from(parent.getContext()).inflate(android.R.layout.simple_list_item_1, parent, false);
        }
        TextView textView = convertView.findViewById(android.R.id.text1);
        textView.setText(songs.get(position));
        return convertView;
    }

    public void filter(String searchText) {
        songs.clear();
        if (searchText.length() == 0) {
            songs.addAll(MainActivity.songList);
        } else {
            for (String song : MainActivity.songList) {
                if (song.toLowerCase().contains(searchText.toLowerCase())) {
                    songs.add(song);
                }
            }
        }
        notifyDataSetChanged();
    }
}

Trong Adapter, chúng ta sử dụng phương thức filter() để lọc danh sách các bài hát dựa trên từ khóa tìm kiếm.

Cuối cùng, chúng ta có thể tạo MainActivity để hiển thị danh sách các bài hát và cho phép tìm kiếm bài hát theo tên:

MainActivity.java

public class MainActivity extends AppCompatActivity {

    private ListView listView;
    private ArrayAdapter<String> adapter;
    private SearchView searchView;

    private String[] songs = {"Hello", "Rolling in the Deep", "Someone Like You",
                              "Skyfall", "Set Fire to the Rain", "Make You Feel My Love",
                              "Chasing Pavements", "Water Under the Bridge", "When We Were Young",
                              "All I Ask", "Turning Tables", "Rumor Has It"};

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

        listView = findViewById(R.id.list_view);
        adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, songs);
        listView.setAdapter(adapter);

        searchView = findViewById(R.id.search_view);
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                return false;
            }

            @Override
            public boolean onQueryTextChange(String newText) {
                adapter.getFilter().filter(newText);
                return false;
            }
        });
    }
}

Trong ví dụ này, chúng ta sử dụng ArrayAdapter để hiển thị danh sách các bài hát trên một ListView. Sau đó, chúng ta tạo một SearchView và bắt sự kiện setOnQueryTextListener() để lắng nghe sự kiện nhập và thay đổi văn bản tìm kiếm. Khi người dùng nhập văn bản tìm kiếm mới, chúng ta gọi phương thức getFilter() để lọc danh sách và hiển thị kết quả tìm kiếm phù hợp trên ListView.

4. Tổng kết

Trên đây là những thông tin về khái niệm, vai trò, các thuộc tính và cách sử dụng SearchView trong Android. Đây là một thành phần UI quan trọng giúp người dùng dễ dàng tìm kiếm và lọc dữ liệu trên ứng dụng của bạn. Hi vọng với những kiến thức về SearchView này, bạn sẽ có thể tùy chỉnh và sử dụng thành phần UI này một cách hiệu quả trong các ứng dụng Android của mình.

Cùng chuyên mục:

Tìm hiểu về vòng đời của Activity trong Android

Tìm hiểu về vòng đời của Activity trong Android

AlarmManager trong Android

AlarmManager trong Android

Menu trong Android

Menu trong Android

Fragments trong Android

Fragments trong Android

TabLayout trong Android

TabLayout trong Android

ViewStub trong Android

ViewStub trong Android

Image Slider trong Android

Image Slider trong Android

Trình chuyển đổi hình ảnh (Image Switcher) trong Android

Trình chuyển đổi hình ảnh (Image Switcher) trong Android

ScrollView trong Android

ScrollView trong Android

ProgressBar trong Android

ProgressBar trong Android

Đồng hồ Analog và đồng hồ kỹ thuật số trong Android

Đồng hồ Analog và đồng hồ kỹ thuật số trong Android

Cách dùng TimePicker trong Android

Cách dùng TimePicker trong Android

Cách dùng DatePicker trong Android

Cách dùng DatePicker trong Android

Cách dùng SeekBar trong Android

Cách dùng SeekBar trong Android

Cách dùng WebView trong Android

Cách dùng WebView trong Android

Cách dùng RatingBar trong Android

Cách dùng RatingBar trong Android

Cách dùng ListView trong Android

Cách dùng ListView trong Android

AutoCompleteTextView trong Android

AutoCompleteTextView trong Android

Spinner trong Android

Spinner trong Android

AlertDialog trong Android

AlertDialog trong Android

Top