Skip to content

Instantly share code, notes, and snippets.

@dodyw
Last active August 29, 2015 14:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dodyw/1ae301656ba788cb512d to your computer and use it in GitHub Desktop.
Save dodyw/1ae301656ba788cb512d to your computer and use it in GitHub Desktop.
masalah dg redraw lisview / repeating
package com.dwidasa.mpos;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.dwidasa.mpos.model.MenuItem;
import java.util.ArrayList;
/**
* Created by dodyrw on 1/18/15.
*/
public class SearchItemListAdapter extends BaseAdapter {
private Context mContext;
private ArrayList<MenuItem> list = new ArrayList<MenuItem>();
public static final int TYPE_1 = 1;
public static final int TYPE_2 = 0;
private ArrayList<Integer> categList = new ArrayList<>();
public SearchItemListAdapter(Context c, ArrayList<MenuItem> newList) {
mContext = c;
this.list = newList;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position).getItemName();
}
@Override
public long getItemId(int position) {
return position;
}
public int getItemType(int position) {
return TYPE_2;
// return list.get(position).getCategory();
}
@Override
public int getItemViewType(int position) {
// get category id, compare with categList
// if exist show layout 1 (no categ)
// if not show layout 2 (with categ)
int categ = list.get(position).getCategory();
int type;
if (categList.contains(categ)) type = TYPE_1; // no categ
else type = TYPE_2; // with categ
categList.add(categ);
return type;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
int type = getItemViewType(position);
if (type == TYPE_2) {
//if (convertView == null) {
LayoutInflater vi = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = vi.inflate(R.layout.search_item_item_with_categ, null);
// }
String categName = "";
int categ = list.get(position).getCategory();
if (categ == 1) categName = "Appetizer";
else if (categ == 2) categName = "Main Course";
else if (categ == 3) categName = "Dessert";
else if (categ == 4) categName = "Drink";
Log.e("MPOS","categ: "+categ+" : "+categName+" : "+list.get(position).getItemName());
TextView txtCode = (TextView) view.findViewById(R.id.code_textview);
TextView txtItemName = (TextView) view.findViewById(R.id.item_name_textview);
TextView txtCateg = (TextView) view.findViewById(R.id.category_textview);
txtCode.setText(list.get(position).getCode());
txtItemName.setText(list.get(position).getItemName());
txtCateg.setText(categName);
} else {
// if (convertView == null) {
LayoutInflater vi = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = vi.inflate(R.layout.search_item_item_no_categ, null);
// }
TextView txtCode = (TextView) view.findViewById(R.id.code_textview);
TextView txtItemName = (TextView) view.findViewById(R.id.item_name_textview);
txtCode.setText(list.get(position).getCode());
txtItemName.setText(list.get(position).getItemName());
}
return view;
}
static class ViewHolderNoCateg {
TextView code;
TextView itemName;
TextView categoryName;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment