В моем приложении, отображающем данные из файла CSV плавно. Но не удалось добавить функцию поиска. Любая помощь будет принята с благодарностью.ArrayAdapter Search Не работает
Как я могу реализовать getFilter().filter(s.toString())
?
В главном Java Class:
search_edit.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// Call back the Adapter with current character to Filter
mAdapter.getFilter().filter(s.toString());
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
});
Мой адаптер:
public class CSVAdapter extends ArrayAdapter<State> {
Context ctx;
private static LayoutInflater inflater=null;
public CSVAdapter(Context context, int textViewResourceId) {
super(context, textViewResourceId);
this.ctx = context;
inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
loadArrayFromFile();
}
@Override
public View getView(final int pos, View convertView, final ViewGroup parent){
View rowView;
rowView = inflater.inflate(R.layout.city_element, null);
TextView city_name_txtObj=(TextView)rowView.findViewById(R.id.city_name_txt);
city_name_txtObj.setText(getItem(pos).getName());
return rowView;
}
private void loadArrayFromFile(){
try {
// Get input stream and Buffered Reader for our data file.
InputStream is = null;
try {
is = ctx.getAssets().open("area.csv");
} catch (IOException e) {
e.printStackTrace();
}
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String line;
//Read each line
while ((line = reader.readLine()) != null) {
//Split to separate the name from the capital
String[] RowData = line.split(",");
//Create a State object for this row's data.
State cur = new State();
cur.setName(RowData[1]);
cur.setPin(RowData[2]);
cur.setLocation(RowData[3]);
cur.setLatitude(RowData[4]);
cur.setLongitude(RowData[5]);
//Add the State object to the ArrayList (in this case we are the ArrayList).
this.add(cur);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
государственный мой класс модели:
public class State {
private String name,pinCode,location,latitude,longitude;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPin() { return pinCode;}
public void setPin(String pinCode) {
this.pinCode = pinCode;
}
public String getLocation() { return location;}
public void setLocation(String location) {
this.location = location;
}
public String getLatitude() { return latitude;}
public void setLatitude(String latitude) {
this.latitude = latitude;
}
public String getLongitude() { return longitude;}
public void setLongitude(String longitude) {
this.longitude = longitude;
}
}
Может быть, этот вопрос слишком простой, но я сделал» t найти подходящее решение. Пожалуйста, помогите мне.
попробовать это один http://stackoverflow.com/questions/14118309/how -to-use-search-functional-in-custom-list-view-in-android/14119383 # 14119383 –
@Ganesh уже пытался. – Kankana