ُSaeed0421
دوشنبه 29 شهریور 1395, 20:14 عصر
سلام دوستان خسته نباشید من میخوام از دستور switch case در لیست ویویی که دارم استفاده کنم.قبلا این کارو انجام دادم اما چون این اکتیویتی من قسمت search هم داره یکم برام دشوار شده.اگه امکانش هست راهنماییم کنید.کد برنامم:
(در قمت نوشتن switch case مشکل ندارم اون قسمت قبلش که باید setItem کردو مشکل دارم)
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.buttonone);
listView = (ListView) findViewById(R.id.listView);
postArrayList = new ArrayList<>();
postArrayList.add(new Post("Dummy Title", "Dummy Sub Title"));
postArrayList.add(new Post("Searchview in actionbar", "enjoy search functionality from actionbar in android"));
postArrayList.add(new Post("Search in listview", "search feature that filter listview item"));
postArrayList.add(new Post("Android Search Bar", "adding search feature in toolbar using appcompat library"));
postArrayList.add(new Post("Android Studio SearchView example", "Android SearchView tutorial in android studio"));
postArrayList.add(new Post("Android Tutorial", "Get latest android material with simple solution"));
postArrayList.add(new Post("nkDroid tutorials", "A to Z Android tutorials at one place"));
myAppAdapter = new MyAppAdapter(postArrayList, ButtonOne.this);
listView.setAdapter(myAppAdapter);
}
public class MyAppAdapter extends BaseAdapter {
public class ViewHolder {
TextView txtTitle, txtSubTitle;
}
public List<Post> parkingList;
public Context context;
ArrayList<Post> arraylist;
private MyAppAdapter(List<Post> apps, Context context) {
this.parkingList = apps;
this.context = context;
arraylist = new ArrayList<Post>();
arraylist.addAll(parkingList);
}
@Override
public int getCount() {
return parkingList.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View rowView = convertView;
ViewHolder viewHolder;
if (rowView == null) {
LayoutInflater inflater = getLayoutInflater();
rowView = inflater.inflate(R.layout.list_item, null);
// configure view holder
viewHolder = new ViewHolder();
viewHolder.txtTitle = (TextView) rowView.findViewById(R.id.title);
viewHolder.txtSubTitle = (TextView) rowView.findViewById(R.id.subtitle);
rowView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.txtTitle.setText(parkingList.get(positi on).getPostTitle() + "");
viewHolder.txtSubTitle.setText(parkingList.get(pos ition).getPostSubTitle() + "");
return rowView;
}
public void filter(String charText) {
charText = charText.toLowerCase(Locale.getDefault());
parkingList.clear();
if (charText.length() == 0) {
parkingList.addAll(arraylist);
} else {
for (Post postDetail : arraylist) {
if (charText.length() != 0 && postDetail.getPostTitle().toLowerCase(Locale.getDe fault()).contains(charText)) {
parkingList.add(postDetail);
} else if (charText.length() != 0 && postDetail.getPostSubTitle().toLowerCase(Locale.ge tDefault()).contains(charText)) {
parkingList.add(postDetail);
}
}
}
notifyDataSetChanged();
}
}
(در قمت نوشتن switch case مشکل ندارم اون قسمت قبلش که باید setItem کردو مشکل دارم)
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.buttonone);
listView = (ListView) findViewById(R.id.listView);
postArrayList = new ArrayList<>();
postArrayList.add(new Post("Dummy Title", "Dummy Sub Title"));
postArrayList.add(new Post("Searchview in actionbar", "enjoy search functionality from actionbar in android"));
postArrayList.add(new Post("Search in listview", "search feature that filter listview item"));
postArrayList.add(new Post("Android Search Bar", "adding search feature in toolbar using appcompat library"));
postArrayList.add(new Post("Android Studio SearchView example", "Android SearchView tutorial in android studio"));
postArrayList.add(new Post("Android Tutorial", "Get latest android material with simple solution"));
postArrayList.add(new Post("nkDroid tutorials", "A to Z Android tutorials at one place"));
myAppAdapter = new MyAppAdapter(postArrayList, ButtonOne.this);
listView.setAdapter(myAppAdapter);
}
public class MyAppAdapter extends BaseAdapter {
public class ViewHolder {
TextView txtTitle, txtSubTitle;
}
public List<Post> parkingList;
public Context context;
ArrayList<Post> arraylist;
private MyAppAdapter(List<Post> apps, Context context) {
this.parkingList = apps;
this.context = context;
arraylist = new ArrayList<Post>();
arraylist.addAll(parkingList);
}
@Override
public int getCount() {
return parkingList.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View rowView = convertView;
ViewHolder viewHolder;
if (rowView == null) {
LayoutInflater inflater = getLayoutInflater();
rowView = inflater.inflate(R.layout.list_item, null);
// configure view holder
viewHolder = new ViewHolder();
viewHolder.txtTitle = (TextView) rowView.findViewById(R.id.title);
viewHolder.txtSubTitle = (TextView) rowView.findViewById(R.id.subtitle);
rowView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.txtTitle.setText(parkingList.get(positi on).getPostTitle() + "");
viewHolder.txtSubTitle.setText(parkingList.get(pos ition).getPostSubTitle() + "");
return rowView;
}
public void filter(String charText) {
charText = charText.toLowerCase(Locale.getDefault());
parkingList.clear();
if (charText.length() == 0) {
parkingList.addAll(arraylist);
} else {
for (Post postDetail : arraylist) {
if (charText.length() != 0 && postDetail.getPostTitle().toLowerCase(Locale.getDe fault()).contains(charText)) {
parkingList.add(postDetail);
} else if (charText.length() != 0 && postDetail.getPostSubTitle().toLowerCase(Locale.ge tDefault()).contains(charText)) {
parkingList.add(postDetail);
}
}
}
notifyDataSetChanged();
}
}