Hi stackoverflow
I'm really wondering why Adapter
repeats the stuff when we put if
condition inside the Adapter
, please someone guide me to correct my mistakes, here is my adapter
public class CustomStoreAdapter extends BaseAdapter {
/** Variable declaration */
private ArrayList<StoresUtility> storeList = new ArrayList<StoresUtility>();
private Context context;
public CustomStoreAdapter(Context context) {
this.context = context;
}// End of CustomAdapter constructor
public void setData(ArrayList<StoresUtility> serviceProviderList) {
this.storeList = serviceProviderList;
notifyDataSetChanged();
}
public int getCount() {
return storeList.size();
}// End of getCount method
public Object getItem(int position) {
return storeList.get(position);
}// End of getItem method
public long getItemId(int position) {
return position;
}// End of getItemId method
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.stores_adapter, null);
}// End of if block
TextView name = (TextView) v.findViewById(R.id.tv_store_full_name);
TextView firstLetter = (TextView) v.findViewById(R.id.tv_store_first_letter);
TextView mobileOne = (TextView) v.findViewById(R.id.tv_contact_store_one);
TextView mobileTwo = (TextView) v.findViewById(R.id.tv_contact_store_two);
LinearLayout llOne = (LinearLayout) v.findViewById(R.id.ll_mobie_one);
LinearLayout llTwo = (LinearLayout) v.findViewById(R.id.ll_mobie_two);
RelativeLayout rlOne = (RelativeLayout) v.findViewById(R.id.rl_contact_store_one);
RelativeLayout rlTwo = (RelativeLayout) v.findViewById(R.id.rl_contact_store_two);
try {
if(storeList.get(position).getName().length() > 0) {
char initial = storeList.get(position).getName().charAt(0);
firstLetter.setText(""+initial);
}
} catch(Exception e) { }
name.setText(""+storeList.get(position).getName());
if(!storeList.get(position).getMobileOne().equalsIgnoreCase("null")) {
llOne.setVisibility(0);
mobileOne.setText(""+storeList.get(position).getMobileOne());
}
if(!storeList.get(position).getMobileTwo().equalsIgnoreCase("null")) {
llTwo.setVisibility(0);
mobileTwo.setText(""+storeList.get(position).getMobileTwo());
}
return v;
}// End of getView method
}//End of CustomServiceAdapter class
Thanks in advance.