Tuesday, May 8, 2012

Android: ArrayAdapter getView() method is not executed

In My Project I have to display a list of reports. So In Activity page I write the following code



super.onCreate(savedInstanceState);
setContentView(R.layout.report_full);
List<Employee> data = new ArrayList<Employee>();
Employee eg=new Employee();
ListView li=(ListView)findViewById(R.id.report_list);
Intent myIntent = getIntent(); // this is just for example purpose
Bundle b=myIntent.getExtras();
Log.i("User Report", b.toString());
Toast.makeText(getApplicationContext(), "User Report", Toast.LENGTH_LONG).show();
if(b !=null)
{
String username = b.getString("username");
String userid = b.getString("userid");
String startdate = b.getString("startdate");
String enddate = b.getString("enddate");
String mode=b.getString("mode");
Log.i("LOOP", userid+"-"+startdate+"-"+enddate+"-"+mode);
data=eg.getTimeEntryUserReports(username, userid, startdate, enddate,mode);
Log.i("Get Report",data.toString());
li.setAdapter(new UserReportArrayadapter(this, data));
}


And In UserReportArrayadapter.java , I write the following code,



    private LayoutInflater inflater;
private List<EmployeeGlobal> data;
public UserHoursByReportArrayadapter(Context context, List<EmployeeGlobal> objects) {
super(context, R.layout.list_time_mode_report, objects);
Log.i("User Report by HoursAdapter","Inside constructor");
inflater = LayoutInflater.from(context);
this.data = objects;
}

@Override
public int getCount() {
// TODO Auto-generated method stub
return 1;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
Log.i("User Report by HoursAdapter","Inside getView");
//if it's not create convertView yet create new one and consume it
if(convertView == null){
//instantiate convertView using our employee_list_item
convertView = inflater.inflate(R.layout.list_time_mode_report, null);
//get new ViewHolder
holder =new ViewHolder();
//get all item in ListView item to corresponding fields in our ViewHolder class
holder.project=(TextView)convertView.findViewById(R.id.time_entry_1);
holder.hours=(TextView)convertView.findViewById(R.id.time_entry_2);

//set tag of convertView to the holder
convertView.setTag(holder);
}
//if it's exist convertView then consume it
else {
holder =(ViewHolder) convertView.getTag();
}
//set data to holder
Log.i("User Report by HoursAdapter:data",data.get(position).getData());
holder.project.setText(data.get(position).getData());
holder.hours.setText(data.get(position).getNo_of_hrs());

return convertView;
}
//ViewHolder class that hold over ListView Item
static class ViewHolder{
TextView hours;
TextView project;


}


On Running this application, there is no items displayed in screen. And I have noticed that getView() method is not being called.
Please provide me the solution for this problem





No comments:

Post a Comment