Android---GridView使用

来源:互联网 发布:网络医院app 编辑:程序博客网 时间:2024/05/16 04:41

1.MainActiivty.java

public class MainActivity extends Activity {    private GridView mGridView;    private MyGridViewAdapter mAdapter;    private ArrayList<String> strDrinks;    private ArrayList<Integer> imgId;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initData();        initViews();    }    private void initData() {        imgId = new ArrayList<>();        imgId.add(R.drawable.ic_launcher);        imgId.add(R.drawable.ic_launcher);        imgId.add(R.drawable.ic_launcher);        imgId.add(R.drawable.ic_launcher);        imgId.add(R.drawable.ic_launcher);        imgId.add(R.drawable.ic_launcher);        imgId.add(R.drawable.ic_launcher);        imgId.add(R.drawable.ic_launcher);        imgId.add(R.drawable.ic_launcher);        imgId.add(R.drawable.ic_launcher);        imgId.add(R.drawable.ic_launcher);        imgId.add(R.drawable.ic_launcher);        strDrinks = new ArrayList<>();        strDrinks.add("卡布奇若");        strDrinks.add("咖啡奶茶");        strDrinks.add("黑乌龙");        strDrinks.add("红茶");        strDrinks.add("拿铁咖啡");        strDrinks.add("奶茶");        strDrinks.add("卡布奇若");        strDrinks.add("咖啡奶茶");        strDrinks.add("黑乌龙");        strDrinks.add("红茶");        strDrinks.add("拿铁咖啡");        strDrinks.add("奶茶");    }    private void initViews() {        mGridView = (GridView) findViewById(R.id.gridview);        mAdapter = new MyGridViewAdapter(this, strDrinks, imgId);        mGridView.setAdapter(mAdapter);        mGridView.setOnItemClickListener(new OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,                    long arg3) {                Toast.makeText(MainActivity.this, strDrinks.get(arg2),                        Toast.LENGTH_SHORT).show();            }        });    }}

2.适配器MyGridViewAdapter.java

public class MyGridViewAdapter extends BaseAdapter {    private Context mContext;    private ArrayList<Integer> imgId;    private ArrayList<String> strDrinks;    public MyGridViewAdapter(Context pContext, ArrayList<String> strDrinks,            ArrayList<Integer> imgId) {        this.mContext = pContext;        this.imgId = imgId;        this.strDrinks = strDrinks;    }    @Override    public int getCount() {        return strDrinks.size();    }    @Override    public Object getItem(int position) {        return strDrinks.get(position);    }    @Override    public long getItemId(int position) {        return position;    }    @Override    public View getView(final int position, View convertView, ViewGroup parent) {        ViewHolder viewHolder = null;        if (null == convertView) {            viewHolder = new ViewHolder();            LayoutInflater mInflater = LayoutInflater.from(mContext);            convertView = mInflater.inflate(R.layout.gridview_item, null);            viewHolder.grid_img_item = (ImageView) convertView                    .findViewById(R.id.grid_img_item);            viewHolder.grid_tv_item = (TextView) convertView                    .findViewById(R.id.grid_tv_item);            convertView.setTag(viewHolder);        } else {            viewHolder = (ViewHolder) convertView.getTag();        }        viewHolder.grid_tv_item.setText(strDrinks.get(position));        viewHolder.grid_img_item.setImageResource(imgId.get(position));        return convertView;    }    private static class ViewHolder {        ImageView grid_img_item;        TextView grid_tv_item;    }}

3.activity_main.xml

<RelativeLayout 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:padding="10dp"    tools:context="com.example.gridviewtest.MainActivity" >    <GridView        android:id="@+id/gridview"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:horizontalSpacing="10dp"        android:verticalSpacing="10dp"        android:numColumns="auto_fit"        /></RelativeLayout>

4.gridview_item.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:gravity="center"    android:padding="10dp"    android:background="@drawable/border"    android:orientation="vertical" >    <ImageView        android:id="@+id/grid_img_item"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginBottom="5dp"        />    <TextView         android:id="@+id/grid_tv_item"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="卡布奇若"        android:textSize="16sp"        android:textColor="#000"        /></LinearLayout>

效果:
这里写图片描述

源码下载

0 0
原创粉丝点击