У меня есть пользовательский адаптер, используя ArrayAdapter
, но я не знаю, как установить фильтр для всех значений. Это мой собственный код адаптераПолучить опцию фильтра в адаптере Custom Array в android?
public class ListAdapter extends ArrayAdapter<String> {
String[] simNo, mobileNo, data;
Activity activity;
public ListAdapter(Activity activity, Object object[]) {
super(activity, R.layout.search_data, (String[]) object[0]);
this.simNo = (String[]) object[0];
this.mobileNo = (String[]) object[1];
this.data = (String[]) object[2];
this.activity = activity;
}
@Override
public View getView(final int position, View view, ViewGroup parent) {
String DELIMITER = " : ";
LayoutInflater inflater = activity.getLayoutInflater();
view = inflater.inflate(R.layout.search_data, null, true);
((TextView) view.findViewById(R.id.sim_no_text)).setText("Sim Number"+DELIMITER+simNo[position]);
((TextView) view.findViewById(R.id.mob_no_text)).setText("Mobile Number"+DELIMITER+mobileNo[position]);
((TextView) view.findViewById(R.id.data)).setText(data[position]);
return view;
}
}
Загрузка данных:
public Object[] formListViewDetails(JSONObject result) {
int noOfSim;
noOfSim = result.optInt("no_of_sims");
String[] data, simNo, mobileNo;
simNo = new String[noOfSim];
mobileNo = new String[noOfSim];
data = new String[noOfSim];
try {
JSONArray totalData = result.getJSONArray("sim_details");
for (int i = 0; i < noOfSim; i++) {
simNo[i] = totalData.optJSONObject(i).optString("sim_no");
mobileNo[i] = totalData.optJSONObject(i).optString("mobile_no");
data[i] = totalData.optJSONObject(i).toString();
}
return new Object[]{simNo, mobileNo, data};
} catch (Exception e) {
Log.d(TAG, "formListViewDetails: " + e.toString());
return null;
}
}
Вызов массива адаптер:
listAdapter = new ListAdapter(this, formListViewDetails(result));
listView.setAdapter(listAdapter);
Возможный дубликат [Filter ListView с arrayadapter] (http://stackoverflow.com/questions/10532194/filter-listview-with-arrayadapter) – petey
HI, у меня есть несколько массивов, Как я могу искать строку в этом массиве, и я хочу искать контент как в sim no, так и на мобильном телефоне? – Kalanidhi
this.simNo = (String []) объект [0]; this.mobileNo = (String []) объект [1]; this.data = (String []) object [2]; – Kalanidhi