2016-07-19 6 views
0

У меня есть gridview в моем приложении Android, в котором отображаются изображения и текст, поэтому я хочу добавить searchview в gridview, чтобы при вводе чего-то в searchview я должен был видеть соответствующие элементы gridview.i не знаю как реализовать мое поисковое представление для массива, связанного с этой сеткой. Заранее спасибоРеализовать поиск андроидной сетки

public class ImageAdapter extends BaseAdapter { 
private Context mContext; 

public ImageAdapter(Context c) { 
    mContext = c; 
} 

public int getCount() { 
    return mThumbIds.length; 
} 

public Object getItem(int position) { 
    return null; 
} 

public long getItemId(int position) { 
    return 0; 
} 

@Override 



// create a new ImageView for each item referenced by the Adapter 
public View getView(int position, View convertView, ViewGroup parent) { 
    View grid; 


    LayoutInflater inflater = (LayoutInflater) mContext 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    ViewHolder mVHolder; 
    if (convertView == null) { 
     // if it's not recycled, initialize some attributes 
     convertView = inflater.inflate(R.layout.grid_single, parent, false); 
     mVHolder=new ViewHolder(); 



     mVHolder.mTextView=(TextView)convertView.findViewById(R.id.text); 
     convertView.setTag(mVHolder); 

    } else { 
     mVHolder=(ViewHolder)convertView.getTag(); 
    } 
    mVHolder.mTextView.setText(mThumbIds[position]); 

    return convertView;} 




// array of strings 

private String[] mThumbIds = {......}; 
} 

class ViewHolder { 

    TextView mTextView; 

} 
+0

Вместо этого используйте recylerview с менеджером girdlayout. Существует множество обучающих программ для реализации поиска по recyclerview. Также recyclerview предотвратит множество проблем, с которыми вы столкнетесь в будущем. – Kushan

ответ

0

Проверить это tutorial о том, как обеспечить функциональность поиска ListViews.

Вы должны создать SearchView

SearchManager searchManager = (SearchManager) 
          getSystemService(Context.SEARCH_SERVICE); 
    searchMenuItem = menu.findItem(R.id.search); 
    searchView = (SearchView) searchMenuItem.getActionView(); 

Реализовать SearchView.OnQueryTextListener и добавить свои unimplented методы, которые

@Override 

public boolean onQueryTextSubmit(String query) { 
    return false; 
} 

@Override 
public boolean onQueryTextChange(String newText) { 
    friendListAdapter.getFilter().filter(newText); 

    return true; 
} 

Реализовать Фильтруемый вашему BaseAdapter. Вам нужно будет создать arraylist для ваших фильтрованных данных.

Смежные вопросы