Apps ListView not displaying anything.

abcd2000

Lurker
I am trying to display a text and an icon in a ListView. Below is my code. When I run, I am not getting anything displayed in simulator. Can somebody please look at the code below and tell me what is wrong?

I tried to make this code as suggested in thread http://androidforums.com/application-development/412041-help-required-create-listview.html

Code:
 ------------------------------------------------------
 listview.xml:
 ------------------------------------------------------
 <?xml version="1.0" encoding="utf-8"?>
 <ListView android:id="@android:id/list"
       xmlns:android="http://schemas.android.com/apk/res/android"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content">
       <TextView
             android:id="@+id/textView" 
             android:padding="3dip"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content" />
         <ImageView 
             android:id="@+id/imageView" 
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:gravity="right"/>
 </ListView>
 
 ------------------------------------------------------
 FileActivity.java:
 ------------------------------------------------------
 package com.vsb.file;
 
 import android.app.ListActivity;
 import android.os.Bundle;
 
 public class FileActivity extends ListActivity {
 
     /** Called when the activity is first created. */
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         //setContentView(R.layout.listview);
         FileAdapter adapter = new FileAdapter(this);
         adapter.addFile(new FileView(this, null, "One", R.drawable.folder));
         adapter.addFile(new FileView(this, null, "Two", R.drawable.file));
         setListAdapter(adapter);
     }
 }
 
 ------------------------------------------------------
  FileView.java:
  ------------------------------------------------------
 package com.vsb.file;
 
 import java.io.File;
 
 import android.content.Context;
 import android.util.AttributeSet;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
 public class FileView extends LinearLayout {
 
     private File file;
     private ImageView image;
     private TextView text;
     private int resId;
     
     public File getFile() {
         return file;
     }
 
     public void setFile(File file) {
         this.file = file;
     }
 
     public ImageView getImage() {
         return image;
     }
 
     public void setImage(int resId) {
         this.image.setImageResource(resId);
         this.resId = resId;
     }
 
     public TextView getText() {
         return text;
     }
 
     public void setText(CharSequence text) {
         this.text.setText(text);
     }
 
     public FileView(Context context) {
         super(context);
     }
     
     public FileView(Context context, AttributeSet attrs) {
         super(context, attrs);
     }
     
     public FileView(Context context, File file, CharSequence lable, int resId) {
         super(context);
         this.file = file;
         text = new TextView(context);
         text.setText(lable);
         image = new ImageView(context);
         this.resId = resId;
         image.setImageResource(resId);
     }
 
     public int getResId() {
         return resId;
     }
 
     public void setResId(int resId) {
         this.resId = resId;
     }
 
 }
 
 ------------------------------------------------------
   FileAdapter.java:
   ------------------------------------------------------
 package com.vsb.file;
 
 import java.util.ArrayList;
 import java.util.List;
 
 import android.content.Context;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.BaseAdapter;
 
 public class FileAdapter extends BaseAdapter {
 
     private List<FileView> list;
     private Context context;
     
     public FileAdapter(Context context) {
         this.context = context;
         list = new ArrayList<FileView>();
     }
     
     public void addFile(FileView fv) {
         list.add(fv);
     }
     @Override
     public int getCount() {
         return list.size();
     }
 
     @Override
     public Object getItem(int position) {
         return list.get(position);
     }
 
     @Override
     public long getItemId(int position) {
         return position;
     } 
 
     @Override
     public View getView(int position, View convertView, ViewGroup parent) {
         FileView fv;
         if(convertView == null) {
             fv = new FileView(context, null, list.get(position).getText().getText(), list.get(position).getResId());
         } else {
             fv = (FileView)convertView;
             fv.setText(list.get(position).getText().getText())  ;
             fv.setImage(list.get(position).getResId());
         }
         return fv;
     }
 
 }
 

abcd2000

Lurker
Thread starter
Found the issue. I forgot to add the image and text to the FileView in its constructor.
Code:
public FileView(Context context, File file, CharSequence lable, int resId) {
        super(context);
        this.file = file;
        text = new TextView(context);
        text.setText(lable);
        image = new ImageView(context);
        this.resId = resId;
        image.setImageResource(resId);
        addView(image);
        addView(text);
    }
 
Top