2015-02-14 4 views
-2

Я могу получить предложения по поиску из списка view.but Мне тоже нужно скрывать нижнее предложение, пока я не нахожу текст в поле поиска (как поиск Google). В google при вводе текста тогда отображаются только предложения к тексту, который мы набрали. Here is my code output image.Параметры поиска в android

Основная деятельность Код

public class MainActivity extends Activity { 

    // List view 
    private ListView lv; 

    // Listview Adapter 
    ArrayAdapter<String> adapter; 

    // Search EditText 
    EditText inputSearch; 


    // ArrayList for Listview 
    ArrayList<HashMap<String, String>> productList; 

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

     // Listview Data 
     String products[] = {"Dell Inspiron", "HTC One X", "HTC Wildfire S", "HTC Sense", "HTC Sensation XE", 
           "iPhone 4S", "Samsung Galaxy Note 800", 
           "Samsung Galaxy S3", "MacBook Air", "Mac Mini", "MacBook Pro"}; 

     lv = (ListView) findViewById(R.id.list_view); 
     inputSearch = (EditText) findViewById(R.id.inputSearch); 

     // Adding items to listview 
     adapter = new ArrayAdapter<String>(this, R.layout.list_item, R.id.product_name, products); 
     lv.setAdapter(adapter); 

     /** 
     * Enabling Search Filter 
     * */ 
     inputSearch.addTextChangedListener(new TextWatcher() { 

      @Override 
      public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) { 
       // When user changed the Text 
       MainActivity.this.adapter.getFilter().filter(cs); 
      } 

      @Override 
      public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, 
        int arg3) { 
       // TODO Auto-generated method stub 

      } 

      @Override 
      public void afterTextChanged(Editable arg0) { 
       // TODO Auto-generated method stub       
      } 
     }); 
    } 

} 

Layout Xml

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

    <!-- Editext for Search --> 
    <EditText android:id="@+id/inputSearch" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:hint="Search products.." 
     android:inputType="textVisiblePassword"/> 

    <!-- List View --> 

    <ListView 
     android:id="@+id/list_view" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" > 
    </ListView> 

</LinearLayout> 
+1

@DerGolem Спасибо, что решить мою проблему. – PRK449

+0

Вы можете принять мой ответ, чтобы удалить свой вопрос из очереди без ответа. –

ответ

1

Вам действительно нужно использовать AutoCompleteTextView вместо EditText.

Отрывок с сайта developer.android.com:

public class CountriesActivity extends Activity 
{ 
    protected void onCreate(Bundle icicle) 
    { 
     super.onCreate(icicle); 
     setContentView(R.layout.countries); 

     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_dropdown_item_1line, COUNTRIES); 
     AutoCompleteTextView textView = (AutoCompleteTextView) 
       findViewById(R.id.countries_list); 
     textView.setAdapter(adapter); 
    } 

    private static final String[] COUNTRIES = new String[] 
    { 
     "Britain", "Belgium", "France", "Finland", "Ireland", "Italy", "Iceland", 
     "Germany", "Greece", "Spain", "Sweden", "Portugal" 
    }; 
} 
Смежные вопросы