Nitin
Nitin

Reputation: 1986

How to make list better?

I have this code but I am unable to find out how it is working specially get view method. I am also unable to find out what is public View getView(int position, View convertView, ViewGroup parent)

public class DynamicDemo extends ListActivity {
    TextView selection;
    String[] items={"lorem", "ipsum", "dolor", "sit", "amet",
    "consectetuer", "adipiscing", "elit", "morbi", "vel",
    "ligula", "vitae", "arcu", "aliquet", "mollis",
    "etiam", "vel", "erat", "placerat", "ante",
    "porttitor", "sodales", "pellentesque", "augue",
    "purus"};

    @Override
    public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.main);
    setListAdapter(new IconicAdapter(this));
    selection=(TextView)findViewById(R.id.selection);
    }
    public void onListItemClick(ListView parent, View v,
    int position, long id) {
    selection.setText(items[position]);
    }
    class IconicAdapter extends ArrayAdapter {
    Activity context;
    IconicAdapter(Activity context) {
    super(context, R.layout.row, items);
    this.context=context;
    }
    public View getView(int position, View convertView,
    ViewGroup parent) {
    LayoutInflater inflater=context.getLayoutInflater();
    View row=inflater.inflate(R.layout.row, null);
    TextView label=(TextView)row.findViewById(R.id.label);
    label.setText(items[position]);
    if (items[position].length()>4) {
    ImageView icon=(ImageView)row.findViewById(R.id.icon);
    icon.setImageResource(R.drawable.delete);
    }
    return(row);
    }
    }
    }

Upvotes: 0

Views: 99

Answers (1)

Reno
Reno

Reputation: 33792

The getView() method is called for each row of the ListView when it gets visibility Typically you inflate an xml, like you did in your code

Explanation of the parameters :

int position

position in the adapter

View convertView

Used for recycling row items

ViewGroup parent

Parent viewgroup to which this view will be added to.

Upvotes: 1

Related Questions