package
jong.example.jsonex;
import
java.util.ArrayList;
import
java.util.Locale;
import
android.content.Context;
import
android.util.Log;
import
android.view.LayoutInflater;
import
android.view.View;
import
android.view.ViewGroup;
import
android.webkit.WebView.FindListener;
import
android.widget.ArrayAdapter;
import
android.widget.BaseAdapter;
import
android.widget.Filter;
import
android.widget.TextView;
public
class
JsonListAdapter
extends
ArrayAdapter<JsonBean> {
private
Context mcContext;
private
int
mResource;
private
ArrayList<JsonBean> mList, dataList;
private
LayoutInflater mInflater;
public
JsonListAdapter(Context context,
int
resource,
ArrayList<JsonBean> objects) {
super
(context, resource, objects);
this
.mcContext = context;
this
.mResource = resource;
this
.dataList=objects;
this
.mList = objects;
this
.mInflater = (LayoutInflater) mcContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public
View getView(
int
position, View convertView, ViewGroup parent) {
JsonBean jsons = mList.get(position);
if
(convertView ==
null
) {
convertView = mInflater.inflate(mResource,
null
);
}
if
(jsons !=
null
) {
TextView latitudeText = (TextView) convertView
.findViewById(R.id.latitude_text);
TextView longitudeText = (TextView) convertView
.findViewById(R.id.longitude_text);
TextView nameText = (TextView) convertView
.findViewById(R.id.name_text);
TextView addressText = (TextView) convertView
.findViewById(R.id.address_text);
TextView tellText = (TextView) convertView
.findViewById(R.id.tel_text);
String latitude = jsons.getLatitude();
String longitude = jsons.getLongitude();
String name = jsons.getName();
String address = jsons.getAddress();
String tel = jsons.getTel();
latitudeText.setText(latitude);
longitudeText.setText(longitude);
nameText.setText(name);
addressText.setText(address);
tellText.setText(tel);
}
return
convertView;
}
public
void
resultData()
{
dataList=mList;
}
@Override
public
Filter getFilter() {
Filter dataFilter=
new
Filter(){
@Override
protected
FilterResults performFiltering(CharSequence constraint) {
FilterResults results=
new
FilterResults();
ArrayList<JsonBean> filterDataList=
new
ArrayList<JsonBean>();
if
(mList==
null
)
{
mList=
new
ArrayList<JsonBean>(dataList);
}
if
(constraint ==
null
|| constraint.length()==
0
)
{
results.values=mList;
results.count=mList.size();
}
else
{
filterDataList.clear();
for
(JsonBean beans: dataList)
{
if
(beans.getName().toUpperCase().startsWith(constraint.toString().toUpperCase()))
{
filterDataList.add(beans);
Log.i(
"@#@#@#@#@##@"
, beans.getName());
}
}
results.values=filterDataList;
results.count=filterDataList.size();
}
return
results;
}
@Override
protected
void
publishResults(CharSequence constraint,
FilterResults results) {
dataList=(ArrayList<JsonBean>) results.values;
notifyDataSetChanged();
}
};
return
dataFilter;
}
}