如何使列表更好



我有这个代码,但我无法找出它是如何工作的,特别是获得视图方法。我也无法找出什么是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);
    }
    }
    }

getView()方法在ListView的每一行获得可见性时被调用。通常你会膨胀一个xml,就像你在代码中做的那样

参数说明:

int position

在适配器中的位置

View convertView

用于回收行项

ViewGroup parent

父视图组,此视图将被添加到其中。

最新更新