Below is the code for mycustom adapter.Getview is not being called in custom adapter I debugged and I found position was being returned as -1 in method
@Override
public Object getItem(int position) {
return result.get(position);
}
ArrayList <searchObjects> result ;
String [] title;
Context context;
int [] imageId;
private static LayoutInflater inflater=null;
public CustomAdapter(searchresults mainActivity,
ArrayList<searchObjects> prgmNameList, int[] prgmImages) {
result=prgmNameList;
context=mainActivity;
imageId=prgmImages;
inflater = ( LayoutInflater )context.
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
I am calling custom adapterlike this
lv = (ListView) findViewById(R.id.listView);
cst= new CustomAdapter(this, objects, prgmImages);
lv.setAdapter(cst);
My full custom adapter:
public class CustomAdapter extends BaseAdapter {
ArrayList <searchObjects> result ;
String [] title;
Context context;
int [] imageId;
private static LayoutInflater inflater=null;
public CustomAdapter(searchresults mainActivity, ArrayList<searchObjects> prgmNameList, int[] prgmImages) {
// TODO Auto-generated constructor stub
result=prgmNameList;
context=mainActivity;
imageId=prgmImages;
inflater = ( LayoutInflater )context.
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
Log.d("Custom get Item1", String.valueOf(result.size()));
return result.size();
//return 2;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
Log.d("Custom get Item", String.valueOf(result.size()));
return result.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
public class Holder
{
TextView tv;
TextView tv1;
ImageView img;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
Log.d("My custome adapter 1", "in view");
Holder holder=new Holder();
View rowView;
rowView = inflater.inflate(R.layout.searchlist, null);
holder.tv1=(TextView) rowView.findViewById(R.id.txtvwsrchlistitemname);
holder.img=(ImageView) rowView.findViewById(R.id.icon);
holder.img.setImageResource(imageId[0]);
holder.tv1.setText(result.get(position).tmpSearchtitle);
return rowView;
}
}
Main activity code
AsyncCallWS task = new AsyncCallWS();
task.execute();
lv = (ListView) findViewById(R.id.listView);
cst= new CustomAdapter(this, objects, prgmImages);
lv.setAdapter(cst);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Object listItem = lv.getItemAtPosition(position);
Log.d(" Search results", " search results link cliked");
Intent browser = new Intent(searchresults.this, locationdetails.class);
startActivity(browser);
}
});