Android - searchview with auto complete feature inside action bar

前端 未结 2 1987
迷失自我
迷失自我 2020-12-09 06:51

I want to build an app that has sherlock action bar and a search view inside it. However, i want this searchview to have autocomplete feature like what autocompleteTextView

2条回答
  •  醉酒成梦
    2020-12-09 07:22

    For this I have Create one Layout with AutoCompleteTextView and add it in ActionBar its call Custom layout in ActionBar.

    After that I have Create Adapter with android.R.layout.simple_dropdown_item_1line. set it in AutoCompleteTextView.

    check Below Code:

    enter image description here

    package com.example.testapp;
    
    import android.annotation.TargetApi;
    import android.app.ActionBar;
    import android.app.Activity;
    import android.content.Context;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.widget.ArrayAdapter;
    import android.widget.AutoCompleteTextView;
    
    @TargetApi(11)
    public class MainActivity extends Activity {
    
        private static final String[] COUNTRIES = new String[] { "Belgium",
                "France", "France_", "Italy", "Germany", "Spain" };
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            ActionBar actionBar = getActionBar();
            actionBar.setDisplayHomeAsUpEnabled(true);
            actionBar.setDisplayShowCustomEnabled(true);
            // actionBar.setDisplayShowTitleEnabled(false);
            // actionBar.setIcon(R.drawable.ic_action_search);
    
            LayoutInflater inflator = (LayoutInflater) this
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            View v = inflator.inflate(R.layout.actionbar, null);
    
            actionBar.setCustomView(v);
    
            ArrayAdapter adapter = new ArrayAdapter(this,
                    android.R.layout.simple_dropdown_item_1line, COUNTRIES);
            AutoCompleteTextView textView = (AutoCompleteTextView) v
                    .findViewById(R.id.editText1);
            textView.setAdapter(adapter);
    
        }
    
    }
    

    Your Layout:

    
    
        
    
        
    
            
        
    
    
    

    For More Details check this articals: one, two and three

    Best Luck!

提交回复
热议问题