2013-08-18 63 views
0

所以我有一個自定義的listview與它自己的適配器類,並且listview有2個textview和一個imageview。我希望用戶能夠點擊操作欄中的搜索按鈕並搜索我的自定義列表中的任一文本瀏覽。問題是,我不知道如何做到這一點。如果有人可以幫助我,它將不勝感激。謝謝!另外一個側面說明:我使用ActionBarSherlock如何搜索自定義列表視圖

這裏是我的列表視圖適配器:

public class ItemIDAdapter extends ArrayAdapter<String> { 

    private LayoutInflater mInflater; 

    private String[] mStrings; 
    private String[] mIds; 
    private TypedArray mIcons; 

    private int mViewResourceId; 

    public ItemIDAdapter(Context ctx, int viewResourceId, 
      String[] strings, String[] ids, TypedArray icons) { 
     super(ctx, viewResourceId, strings); 

     mInflater = (LayoutInflater)ctx.getSystemService(
       Context.LAYOUT_INFLATER_SERVICE); 

     mStrings = strings; 
     mIds = ids; 
     mIcons = icons; 

     mViewResourceId = viewResourceId; 
    } 

    @Override 
    public int getCount() { 
     return mStrings.length; 
    } 

    @Override 
    public String getItem(int position) { 
     return mStrings[position]; 
    } 

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

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     convertView = mInflater.inflate(mViewResourceId, null); 

     ImageView iv = (ImageView)convertView.findViewById(R.id.option_icon); 
     iv.setImageDrawable(mIcons.getDrawable(position)); 

     TextView tv = (TextView)convertView.findViewById(R.id.option_text); 
     tv.setText(mStrings[position]); 

     TextView tv1 = (TextView)convertView.findViewById(R.id.itemids); 
     tv1.setText(mIds[position]); 

     return convertView; 
    } 
} 

這是類,我顯示列表視圖:

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     Context ctx = getApplication(); 
     Resources res = ctx.getResources(); 

     String[] options = res.getStringArray(R.array.item_ids); 
     String[] ids = res.getStringArray(R.array.item_names); 
     TypedArray icons = res.obtainTypedArray(R.array.item_images); 

     setListAdapter(new ItemIDAdapter(ctx, R.layout.idslistitem, ids, options, icons)); 
     } 

回答

0

如果您使用的EditText進行搜索,那麼你必須寫自己的過濾器method..here就是一個例子Custom ListView Search。如果你不能得到它,那麼讓我知道我會幫你。