Adapter

Adapter的種類

1、BaseAdapter:基礎數據適配器,它的主要用途是將一組數據傳到例如ListView等UI顯示組件,繼承自接口類Adapter,由於是基礎類型,所以自由度高, 可以修改的地方多

2、SimpleAdapter:簡單適配器,系統自定義了一些方法,可以重寫這些方法

3、ArrayAdapter:數據和UI一對一,傳入數據源和佈局文件,完成顯示

4、SimpleCursorAdapter:指向性適配器,指向數據庫,可以方便地把數據庫的內容以列表的形式展示出來

AdapterView

Gallery(畫廊的實現)與BaseAdapter

在Layout的部分先設置一個Gallery與ImageSwitcher

對ImageSwitcher做初使設定

imageSwitcher.setFactory(new ViewSwitcher.ViewFactory() {
    @Override
    public View makeView() {
        ImageView imageView=new ImageView(getApplicationContext());
        return imageView;
    }
});

設定效果滑動效果

//淡入淡出效果
imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_in));
imageSwitcher.setAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_out));

對Gallery設定Adapter,這邊我是用BaseAdapter

gallery.setAdapter(new BaseAdapter() {
    @Override
    public int getCount() {
        return imagesId.length;
        //多少種方法
    }

    @Override
    public Object getItem(int position) {
        return imagesId[position];


    }

    @Override
    public long getItemId(int position) {
        return position;
    }

最後一個getView的設定

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView=new ImageView(getApplicationContext());
    imageView.setImageResource(imagesId[position]);
    imageView.setAdjustViewBounds(true);
    imageView.setLayoutParams(new Gallery.LayoutParams(Gallery.LayoutParams.WRAP_CONTENT,Gallery.LayoutParams.WRAP_CONTENT));
    return imageView;
}

效果:


ListView與SimpleAdapter

首先在mainLayout裡面放一個List 創建一個新的Layout 再來就在Main.class裡面對List做一些設定

listView=(ListView)findViewById(R.id.listView);
List<Map<String, Object>> items = new ArrayList<Map<String,Object>>();
for(int i=0;i<image.length;i++){
    Map<String,Object> item=new HashMap<String,Object>();
    item.put("image", image[i]);
    item.put("text", name[i]);
    items.add(item);
}

之後設定SimpleAdapter

simpleAdapter = new SimpleAdapter(this,
        items, R.layout.simple_list, new String[]{"image", "text"},
        new int[]{R.id.image, R.id.text});
listView.setAdapter(simpleAdapter);

效果:

results matching ""

    No results matching ""