나는 Adapter
과 함께 사용자 정의 ListView
을 포함하는 Fragment
을 가지고 있습니다. 이 목록에 표시되는 것은 다음과 같은 일부 의사의 특성입니다. picture
, name
, 및 gender
.버튼을 사용하여 사용자 정의 목록보기 필터링 (안드로이드)
버튼을 누를 때 gender
으로 의사를 필터링하고 싶습니다. 기본값으로 모든 의사가 표시되도록 남성 버튼이 모든 남성을 표시하고 여성 버튼이 모두 여성을 표시합니다. 여기
public class Doctors extends Fragment {
String[] names = {"Richard Johnson", "William Perez", "Jennifer Fields", "Caroline Marin", "John Smith"};
String[] ages = {"25", "32", "41", "31", "29"};
String[] gender = {"Male", "Male", "Female", "Female", "Male"};
int[] images = { R.drawable.delete_doctora,R.drawable.delete_doctora,R.drawable.delete_doctora,R.drawable.delete_doctora,R.drawable.delete_doctora,};
ListView list;
ArrayAdapter<DocItem> adapter;
ArrayList<DocItem> arrayList;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState){
View view = inflater.inflate(R.layout.activity_doctors, container, false);
arrayList = new ArrayList<DocItem>();
for(int i = 0; i < 5; i++){
arrayList.add(i,new DocItem(names[i], ages[i], gender[i], images[i]));
}
adapter = new DocAdapter(getActivity(), arrayList);
list = (ListView) view.findViewById(R.id.ListDocs);
list.setAdapter(adapter);
list.setTextFilterEnabled(true);
return view;
}
}
내 사용자 정의 어댑터 :
public class DocAdapter extends ArrayAdapter<DocItem> {
private Context context;
private ArrayList<DocItem> _values;
public DocAdapter(Context context, ArrayList<DocItem> values) {
super(context, 0, values);
this.context = context;
_values = new ArrayList<DocItem>();
_values.addAll(values);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.doc_list_row, parent, false);
TextView txtName = (TextView) rowView.findViewById(R.id.Name);
TextView txtAge = (TextView) rowView.findViewById(R.id.Age);
ImageView imageView = (ImageView) rowView.findViewById(R.id.Pic);
txtName.setText(_values.get(position)._name);
txtAge.setText(_values.get(position)._age);
imageView.setImageResource(_values.get(position)._picture);
return rowView;
}
}
그리고 항목 :
public class DocItem {
public String _name, _age, _gender;
int _picture;
public DocItem(String name, String age, String gender, int picture){
_name = name;
_age = age;
_picture= picture;
_gender = gender;
}
}
귀하의 질문에 정확히 무엇 : 당신의 조각 onCreateView에서
? –
각 단추를 눌렀을 때 어떻게 ListView에 남녀를 표시 할 수 있습니까? 'gender'값을 필터로 사용 –
[this] (https://gist.github.com/pskink/1cc7435461fee1c90d1ed311dd1c3e82) "사용자 정의 필터 준비"배열 어댑터 – pskink