在这个例子中,我们需要实现filter视图的代码。我们使用两个类:Car.java (包含对象车),Class CarAdapter扩展BaseAdapter类。以下是一些代码:
Car.java
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
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
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)));
}
}谢谢你的帮助。
发布于 2013-09-20 09:52:08
按照以下步骤使listview可过滤:
CarAdapter.java中实现可过滤接口。看看类似的问题,这里回答了。CarActivity.java中,将Listview适配器设置为可过滤。
listViewCatalog.setTextFilterEnabled(true);android.widget.SearchView,那么实现SearchView.OnQueryTextListener或者如果您使用EditText,那么实现TextWatcher接口。https://stackoverflow.com/questions/15842452
复制相似问题