masalah dg redraw lisview / repeating
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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