首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于BaseAdapter的安卓过滤BaseAdapter

基于BaseAdapter的安卓过滤BaseAdapter
EN

Stack Overflow用户
提问于 2013-04-05 19:57:02
回答 1查看 1.4K关注 0票数 0

在这个例子中,我们需要实现filter视图的代码。我们使用两个类:Car.java (包含对象车),Class CarAdapter扩展BaseAdapter类。以下是一些代码:

Car.java

代码语言:javascript
复制
public class Car {

public String title;
public int car_id;

public Car(String title,int car_id) {
    this.title = title;
    this.car_id = car_id;
}

}

CarAdapter.java

代码语言:javascript
复制
public class CarAdapter extends BaseAdapter {

private List<Car> mCarList;
private LayoutInflater mInflater;

public CarAdapter(List<Car> list, LayoutInflater inflater) {
    mCarList = list;
    mInflater = inflater;
}

@Override
public int getCount() {
    return mCarList.size();
}

@Override
public Object getItem(int position) {
    return mCarList.get(position);
}

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

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    final ViewItem item;

    if (convertView == null) {
        convertView = mInflater.inflate(R.layout.prototype, null);
        item = new ViewItem();


        item.CarTitle = (TextView) convertView
                .findViewById(R.id.TextViewPrototype);

        convertView.setTag(item);
    } else {
        item = (ViewItem) convertView.getTag();
    }

    Car curCar = mCarList.get(position);

    item.CarTitle.setText(curCar.title);    

    return convertView;
}

private class ViewItem {
    TextView CarTitle;
}

}

CarActivity.java

代码语言:javascript
复制
 public class ActivityCar extends Activity {

private List<Car> mCarList;
private EditText et;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.car);
    // Obtain a reference to the product catalog
    mCarList = CarHelper.getCar(getResources());
    // Create the list
    ListView listViewCatalog = (ListView) findViewById(R.id.list_car);
    listViewCatalog.setAdapter(newCarAdapter(mCarList,getLayoutInflater)));

}   
}

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2013-09-20 09:52:08

按照以下步骤使listview可过滤:

  1. CarAdapter.java中实现可过滤接口。看看类似的问题,这里回答了。
  2. CarActivity.java中,将Listview适配器设置为可过滤。 listViewCatalog.setTextFilterEnabled(true);
  3. 如果您使用了android.widget.SearchView,那么实现SearchView.OnQueryTextListener或者如果您使用EditText,那么实现TextWatcher接口。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15842452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档