Membuat Fitur Pencarian di Android dengan data statis

Agustus 17, 2018 , 0 Comments

1.



       Buat ListView untuk menampung datanya
<?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="com.example.asus.searchbar.MainActivity">

    <ListView
       
android:layout_width="match_parent"
       
android:layout_height="match_parent"
       
android:id="@+id/listViewCountry"
       
android:layout_weight="1">

    </ListView>

</LinearLayout>

2.       Untuk datanya kita akan menggunakan data statis yang disimpan di string. simpan file dibawah dengan nama string.xml di folder values
<resources>

    <string name="app_name">SearchBar</string>

    <string-array name="array_country">

        <item>Afganistan</item>

        <item>Australia</item>

        <item>Afrika Selatan</item>

        <item>Amerika</item>

        <item>Belanda</item>

        <item>Brazil</item>

        <item>Brunei Darussalam</item>

        <item>China</item>

        <item>Ceko</item>

        <item>Estonia</item>

        <item>Denmark</item>

        <item>Finlandia</item>

        <item>Francis</item>

        <item>Ghana</item>

        <item>Haiti</item>

        <item>Honduras</item>

        <item>Hongaria</item>

        <item>Italia</item>

        <item>India</item>

        <item>Iran</item>

        <item>Irak</item>

        <item>Israel</item>

        <item>Indonesia</item>

        <item>Inggris</item>

        <item>Jerman</item>

        <item>Jepang</item>

        <item>Kanada</item>

        <item>Korea Selatan</item>

        <item>Kabul</item>

        <item>Leshoto</item>

        <item>Latvia</item>

        <item>Luxseburg</item>

        <item>Madagaskar</item>

        <item>Malaysia</item>

        <item>Maldives</item>

        <item>Mesir</item>

        <item>Meksiko</item>

        <item>Nepal</item>

        <item>Norwegia</item>

        <item>Oman</item>

        <item>Paraguay</item>

        <item>Papua Nugini</item>

        <item>Peru</item>

        <item>Pilipina</item>

        <item>Portugal</item>

        <item>Qatar</item>

        <item>Rusia</item>

        <item>Swedia</item>

        <item>Swiss</item>

        <item>Saudi Arabia</item>

        <item>Selandia Baru</item>

        <item>Singapura</item>

        <item>Thailand</item>

        <item>Timor Leste</item>

        <item>Turkey</item>

        <item>Uruguay</item>

        <item>Uganda</item>

        <item>Vietnam</item>

        <item>Yaman</item>

    </string-array>

</resources>

3.       Buat Menu Pencariannya, caranya buat dulu android resource directory di folder res dengan nama menu. kemudian dalam folder menu buat file menu_search.xml dan isikan kode dibawah:
<?xml version="1.0" encoding="utf-8"?>

<menu xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:app="http://schemas.android.com/apk/res-auto">



    <item

        android:id="@+id/menuSearch"

        android:icon="@android:drawable/ic_menu_search"

        android:title="Search"

        app:actionViewClass="android.support.v7.widget.SearchView"

        app:showAsAction="always"></item>



</menu>

4.       Langkah terakhir untuk kode javanya silakan masukan kode dibawah :
package com.example.asus.searchbar;



import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.support.v7.widget.SearchView;

import android.view.Menu;

import android.view.MenuInflater;

import android.view.MenuItem;

import android.widget.ArrayAdapter;

import android.widget.ListView;



import java.util.ArrayList;

import java.util.Arrays;



public class MainActivity extends AppCompatActivity {



    ArrayAdapter<String> adapter;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        ListView lv = (ListView) findViewById(R.id.listViewCountry);

        ArrayList<String>  ArrayCountry = new ArrayList<>();

        ArrayCountry.addAll(Arrays.asList(getResources().getStringArray(R.array.array_country)));



        adapter = new ArrayAdapter<String>(

                MainActivity.this,

                android.R.layout.simple_list_item_1,

                ArrayCountry);

        lv.setAdapter(adapter);

    }



    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

        MenuInflater inflater = getMenuInflater();

        inflater.inflate(R.menu.menu_search, menu);

        MenuItem item = menu.findItem(R.id.menuSearch);

        SearchView searchView = (SearchView)item.getActionView();



        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;

            }

        });



        return super.onCreateOptionsMenu(menu);

    }

}


Selanjutnya silakan jalankan aplikasi anda bila ada yang error bias ditanyakan pada kolom komentar dibawah
Juanas Smith Shared

Juanas Smith Shared

Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.