上一篇我们仅仅介绍了AdapterView的其中一个ListView,这一篇里我将对其余的三个进行说明和讲解。

   

1.Spinner(下拉列表)

(1)MainActivity.java

package com.example.l026_adapterview_other1;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class MainActivity extends Activity {
    private Spinner sp;
    private ArrayAdapter aAdapter;
    private String datas[]={"标准模式","静音模式","振动模式","自定义模式"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        sp=(Spinner)findViewById(R.id.spinner1);
        aAdapter=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,datas);
        sp.setAdapter(aAdapter);
    }
}

(2)activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >
    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
                                                                                                 
</LinearLayout>

(3)运行效果

201122256.jpg

   点击下拉列表后:

201158416.jpg



2.GridView(网格)

(1)MainActivity.java

package com.example.l027_adapterview_other2;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.os.Bundle;
import android.widget.GridView;
import android.widget.SimpleAdapter;
public class MainActivity extends Activity {
    private GridView gv;
    private SimpleAdapter sAdapter;
    private int[] p_w_picpath={R.drawable.dice_1,R.drawable.dice_2,
            R.drawable.dice_3,R.drawable.dice_4,R.drawable.dice_5,
            R.drawable.dice_6,R.drawable.dice_action_0,R.drawable.dice_action_1,
            R.drawable.dice_action_2,R.drawable.dice_action_3,R.drawable.icon_002,
            R.drawable.icon_007,R.drawable.icon_010,R.drawable.icon_012,
            R.drawable.icon_012,R.drawable.icon_013,R.drawable.icon_018,
            R.drawable.icon_019,R.drawable.icon_019_cover,R.drawable.icon_020,
            R.drawable.icon_021,R.drawable.icon_021_cover,R.drawable.icon_022_cover,
            R.drawable.icon_022,R.drawable.icon_024,R.drawable.icon_024_cover,
            R.drawable.icon_027,R.drawable.icon_027_cover,R.drawable.icon_029,
            R.drawable.icon_029_cover,R.drawable.icon_030,R.drawable.icon_030_cover,
            R.drawable.icon_035,R.drawable.icon_035_cover,R.drawable.icon_040,
            R.drawable.icon_040_cover};
    private String[] name={""};
    private List<Map<String,Object>> lists;
    private Map<String,Object> maps;
                                                                
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        gv=(GridView)findViewById(R.id.gridView1);
        lists=new ArrayList<Map<String,Object>>();
        for(int i=0;i<p_w_picpath.length;i++){
            maps=new HashMap<String,Object>();
            maps.put("p_w_picpath", p_w_picpath[i]);
            lists.add(maps);
        }
        sAdapter=new SimpleAdapter(this, lists, R.layout.cell,
                new String[]{"p_w_picpath"}, new int[]{R.id.iv});
        gv.setAdapter(sAdapter);
    }
}

(2)MyAdapter.java

package com.example.l027_adapterview_other2;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.Gallery.LayoutParams;
import android.widget.ImageView;
public class MyAdapter extends BaseAdapter{
    private Context context;
    private int p_w_picpath[]={};
    public MyAdapter(Context context,int[] p_w_picpath){
        this.context=context;
        this.p_w_picpath=p_w_picpath;
    }
                                                             
    @Override
    public int getCount() {
        return this.p_w_picpath.length;
    }
    @Override
    public Object getItem(int position) {
        return this.p_w_picpath[position];
    }
    @Override
    public long getItemId(int position) {
        return position;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView iv=new ImageView(context);
        iv.setBackgroundResource(p_w_picpath[position]);
        iv.setLayoutParams(new Gallery.LayoutParams(LayoutParams.FILL_PARENT,
                LayoutParams.FILL_PARENT));
        return iv;
    }
}



3.Gallery

(1)MainActivity.java

package com.example.l028_adapterview_gallery;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Gallery;
import android.widget.Toast;
public class MainActivity extends Activity {
    private Gallery gy;
    private MyAdapter mAdapter;
    private int[] p_w_picpath={
            R.drawable.c0,R.drawable.c1,R.drawable.c2,
            R.drawable.c3,R.drawable.c4,R.drawable.c5,
            R.drawable.c6,R.drawable.c7,R.drawable.c8,
            R.drawable.c9,R.drawable.c10,R.drawable.c11,
            R.drawable.c12,R.drawable.c13,R.drawable.c14,
            R.drawable.c5};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        gy=(Gallery)findViewById(R.id.gallery_main);
        mAdapter=new MyAdapter(this,p_w_picpath);
        gy.setAdapter(mAdapter);
        gy.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                Toast.makeText(MainActivity.this,
                        "已经设置为壁纸", Toast.LENGTH_SHORT).show();
            }
        });
    }
}

(2)MyAdapter.java

package com.example.l028_adapterview_gallery;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.Gallery.LayoutParams;
import android.widget.ImageView;
public class MyAdapter extends BaseAdapter{
    private Context context;
    private int p_w_picpath[]={};
    public MyAdapter(Context context,int[] p_w_picpath){
        this.context=context;
        this.p_w_picpath=p_w_picpath;
    }
      
    @Override
    public int getCount() {
        return this.p_w_picpath.length;
    }
    @Override
    public Object getItem(int position) {
        return this.p_w_picpath[position];
    }
    @Override
    public long getItemId(int position) {
        return position;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView iv=new ImageView(context);
        iv.setBackgroundResource(p_w_picpath[position]);
        iv.setLayoutParams(new Gallery.LayoutParams(LayoutParams.FILL_PARENT,
                LayoutParams.FILL_PARENT));
        return iv;
    }
}