|
@@ -154,14 +154,16 @@ public class BusinessStateActivity extends BaseActivity implements View.OnClickL
|
|
|
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
|
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
|
|
if (!StringUtils.isEmpty(search_edit.getText().toString())) {
|
|
if (!StringUtils.isEmpty(search_edit.getText().toString())) {
|
|
|
mAdapter.getFilter().filter(search_edit.getText().toString());
|
|
mAdapter.getFilter().filter(search_edit.getText().toString());
|
|
|
- } else {
|
|
|
|
|
|
|
+ }else {
|
|
|
mAdapter.getFilter().filter("");
|
|
mAdapter.getFilter().filter("");
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public void afterTextChanged(Editable s) {
|
|
public void afterTextChanged(Editable s) {
|
|
|
-
|
|
|
|
|
|
|
+// if (!StringUtils.isEmpty(search_edit.getText().toString())) {
|
|
|
|
|
+// mAdapter.getFilter().filter(search_edit.getText().toString());
|
|
|
|
|
+// }
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
@@ -194,8 +196,8 @@ public class BusinessStateActivity extends BaseActivity implements View.OnClickL
|
|
|
model.setType(type);
|
|
model.setType(type);
|
|
|
mData.add(model);
|
|
mData.add(model);
|
|
|
}*/
|
|
}*/
|
|
|
- mAdapter = new BussinessDetailAdapter(this, mData);
|
|
|
|
|
- mlist.setAdapter(mAdapter);
|
|
|
|
|
|
|
+// mAdapter = new BussinessDetailAdapter(this, mData);
|
|
|
|
|
+// mlist.setAdapter(mAdapter);
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -228,8 +230,11 @@ public class BusinessStateActivity extends BaseActivity implements View.OnClickL
|
|
|
|
|
|
|
|
private class BussinessDetailAdapter extends BaseAdapter implements Filterable {
|
|
private class BussinessDetailAdapter extends BaseAdapter implements Filterable {
|
|
|
private Context ct;
|
|
private Context ct;
|
|
|
- private ArrayList<Business> mdata = new ArrayList<>();
|
|
|
|
|
|
|
+ private ArrayList<Business> mdata;
|
|
|
private LayoutInflater inflater;
|
|
private LayoutInflater inflater;
|
|
|
|
|
+ private MyFilter myFilter;
|
|
|
|
|
+ private ArrayList<Business> mOrignalValues;
|
|
|
|
|
+ private final Object mLock = new Object();
|
|
|
|
|
|
|
|
public BussinessDetailAdapter(Context ct, ArrayList<Business> data) {
|
|
public BussinessDetailAdapter(Context ct, ArrayList<Business> data) {
|
|
|
this.ct = ct;
|
|
this.ct = ct;
|
|
@@ -239,12 +244,22 @@ public class BusinessStateActivity extends BaseActivity implements View.OnClickL
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public int getCount() {
|
|
public int getCount() {
|
|
|
- return mdata.size();
|
|
|
|
|
|
|
+ if (mdata == null){
|
|
|
|
|
+ return 0;
|
|
|
|
|
+ }else {
|
|
|
|
|
+ return mdata.size();
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public Object getItem(int position) {
|
|
public Object getItem(int position) {
|
|
|
- return mdata.get(position);
|
|
|
|
|
|
|
+ if (mdata == null){
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }else {
|
|
|
|
|
+ return mdata.get(position);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -308,45 +323,10 @@ public class BusinessStateActivity extends BaseActivity implements View.OnClickL
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public Filter getFilter() {
|
|
public Filter getFilter() {
|
|
|
- return new Filter() {
|
|
|
|
|
- @Override
|
|
|
|
|
- protected FilterResults performFiltering(CharSequence constraint) {
|
|
|
|
|
- //过滤数据
|
|
|
|
|
- FilterResults searchResults = new FilterResults();
|
|
|
|
|
-
|
|
|
|
|
- if (constraint == null || constraint.length() == 0){
|
|
|
|
|
- searchResults.values=mData;
|
|
|
|
|
- searchResults.count=mData.size();
|
|
|
|
|
- }else{
|
|
|
|
|
- ArrayList<Business> newBusiness=new ArrayList<>();
|
|
|
|
|
- for (Business business:mdata){
|
|
|
|
|
- String num=business.getNum();
|
|
|
|
|
- String name=business.getName();
|
|
|
|
|
- String source=business.getSource();
|
|
|
|
|
- String links=business.getPhone();
|
|
|
|
|
- String remark=business.getNote();
|
|
|
|
|
- String date=business.getDate();
|
|
|
|
|
- if (num.contains(constraint)||name.contains(constraint)||source.contains(constraint)
|
|
|
|
|
- ||links.contains(constraint)||remark.contains(constraint)||date.contains(constraint))
|
|
|
|
|
- {
|
|
|
|
|
- newBusiness.add(business);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- searchResults.values=newBusiness;
|
|
|
|
|
- searchResults.count=newBusiness.size();
|
|
|
|
|
- }
|
|
|
|
|
- return searchResults;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- @Override
|
|
|
|
|
- protected void publishResults(CharSequence constraint, FilterResults results) {
|
|
|
|
|
- mdata= (ArrayList<Business>) results.values;
|
|
|
|
|
- if (mAdapter.getCount() == 0) {
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
- notifyDataSetChanged();
|
|
|
|
|
- }
|
|
|
|
|
- };
|
|
|
|
|
|
|
+ if (myFilter == null){
|
|
|
|
|
+ myFilter = new MyFilter();
|
|
|
|
|
+ }
|
|
|
|
|
+ return myFilter;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -365,6 +345,60 @@ public class BusinessStateActivity extends BaseActivity implements View.OnClickL
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ class MyFilter extends Filter{
|
|
|
|
|
+ @Override
|
|
|
|
|
+ protected FilterResults performFiltering(CharSequence constraint) {
|
|
|
|
|
+ //过滤数据
|
|
|
|
|
+ FilterResults searchResults = new FilterResults();
|
|
|
|
|
+ if (mOrignalValues == null){
|
|
|
|
|
+ synchronized (mLock){
|
|
|
|
|
+ mOrignalValues = new ArrayList<Business>(mdata);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if (constraint == null || constraint.length() == 0){
|
|
|
|
|
+ synchronized (mLock){
|
|
|
|
|
+ ArrayList<Business> tempList = new ArrayList<>(mOrignalValues);
|
|
|
|
|
+ searchResults.values=tempList;
|
|
|
|
|
+ searchResults.count=tempList.size();
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }else{
|
|
|
|
|
+ final ArrayList<Business> values = mOrignalValues;
|
|
|
|
|
+ final int count = values.size();
|
|
|
|
|
+
|
|
|
|
|
+ final ArrayList<Business> newBusiness=new ArrayList<>(count);
|
|
|
|
|
+
|
|
|
|
|
+ for (Business business: values){
|
|
|
|
|
+ String num=business.getNum();
|
|
|
|
|
+ String name=business.getName();
|
|
|
|
|
+ String source=business.getSource();
|
|
|
|
|
+ String links=business.getPhone();
|
|
|
|
|
+ String remark=business.getNote();
|
|
|
|
|
+ String date=business.getDate();
|
|
|
|
|
+ if (num.contains(constraint)||name.contains(constraint)||source.contains(constraint)
|
|
|
|
|
+ ||links.contains(constraint)||remark.contains(constraint)||date.contains(constraint))
|
|
|
|
|
+ {
|
|
|
|
|
+ newBusiness.add(business);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ searchResults.values=newBusiness;
|
|
|
|
|
+ searchResults.count=newBusiness.size();
|
|
|
|
|
+ }
|
|
|
|
|
+ return searchResults;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ protected void publishResults(CharSequence constraint, FilterResults results) {
|
|
|
|
|
+ mdata= (ArrayList<Business>) results.values;
|
|
|
|
|
+ if (mAdapter.getCount() > 0) {
|
|
|
|
|
+ notifyDataSetChanged();
|
|
|
|
|
+ }else {
|
|
|
|
|
+ notifyDataSetInvalidated();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -430,6 +464,7 @@ public class BusinessStateActivity extends BaseActivity implements View.OnClickL
|
|
|
}
|
|
}
|
|
|
mAdapter = new BussinessDetailAdapter(ct, mData);
|
|
mAdapter = new BussinessDetailAdapter(ct, mData);
|
|
|
mlist.setAdapter(mAdapter);
|
|
mlist.setAdapter(mAdapter);
|
|
|
|
|
+// mAdapter.notifyDataSetChanged();
|
|
|
if (page!=1) {
|
|
if (page!=1) {
|
|
|
mlist.getRefreshableView().setSelection(mAdapter.getCount());
|
|
mlist.getRefreshableView().setSelection(mAdapter.getCount());
|
|
|
}
|
|
}
|