zoukankan      html  css  js  c++  java
  • gridview 和 adapter 的运用,没用运用匿名类。

    一. 和运用listview一样,首先需要在onCreate方法中,查找并初始化视图。

    二. 在onCreate 方法中,初始化一个adapter,关键是在初始化adapter时,用到了构造方法,这个构造方法是带3个参数的,其中第一个参数,是把当前content即activity,代入到了adapter视图中,帮助adapter视图完成查找解析资源文件的功能。

    这段代码是在主activity中的。即gridview中的。

    adapter = new MainAdapter(this, names, icons);

    这段代码是在adapter中的,即baseadapter中的,其中在View.inflate的语句中,context是从构造方法中传入的上下文。

    @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            
            if(convertView==null) {
                convertView = View.inflate(context, R.layout.item_main, null);
            }
            
            ImageView imageView = (ImageView) convertView.findViewById(R.id.iv_item_icon);
            TextView textView = (TextView) convertView.findViewById(R.id.tv_item_name);
            imageView.setImageResource(icons[position]);
            textView.setText(names[position]);
            
            return convertView;
        }

    三.大体步骤为,a)初始化gridview,b)初始化adapter,c)设置GridView的adpater为新new出来的adapter,d)设置监听事件setOnItemClickListener

    以下为完整代码

    package com.atguigu.app03_gridview;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.Toast;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.GridView;
    
    public class MainActivity extends Activity {
    
        private GridView gv_main;
        private MainAdapter adapter;
        String[] names = new String[] { "手机防盗", "通讯卫士", "软件管理", "流量管理", "进程管理",
                "手机杀毒", "缓存清理", "高级工具", "设置中心" };
    
        int[] icons = new int[] { R.drawable.widget01, R.drawable.widget02,
                R.drawable.widget03, R.drawable.widget04, R.drawable.widget05,
                R.drawable.widget06, R.drawable.widget07, R.drawable.widget08,
                R.drawable.widget09 };
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            gv_main = (GridView) findViewById(R.id.gv_main);
            adapter = new MainAdapter(this, names, icons);
            
            gv_main.setAdapter(adapter);
            
            //给gridView的Item设置点击监听
            gv_main.setOnItemClickListener(new OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
                    //得到当前点击的名称
                    String name = names[position];
                    //提示
                    Toast.makeText(MainActivity.this, name, 1).show();
                }
            });
        }
    }
    package com.atguigu.app03_gridview;
    
    import android.content.Context;
    import android.view.TextureView;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.ImageView;
    import android.widget.TextView;
    
    public class MainAdapter extends BaseAdapter {
    
        private String[] names;
        private int[] icons;
        private Context context;
        
        public MainAdapter(Context context, String[] names, int[] icons) {
            super();
            this.context = context;
            this.names = names;
            this.icons = icons;
        }
    
        @Override
        public int getCount() {
            return names.length;
        }
    
        @Override
        public Object getItem(int position) {
            return names[position];
        }
    
        @Override
        public long getItemId(int position) {
            return 0;
        }
    
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            
            if(convertView==null) {
                convertView = View.inflate(context, R.layout.item_main, null);
            }
            
            ImageView imageView = (ImageView) convertView.findViewById(R.id.iv_item_icon);
            TextView textView = (TextView) convertView.findViewById(R.id.tv_item_name);
            imageView.setImageResource(icons[position]);
            textView.setText(names[position]);
            
            return convertView;
        }
    
    }
  • 相关阅读:
    C#实现图片的无损压缩
    C#实现图片的无损压缩
    ACM2034
    产品经理入门攻略(三)
    编程思想14.类型信息
    分布式ID生成策略 · fossi
    在加拿大找工作:如何写简历(适用理工科)
    支持向量机 SVM
    javaSE复习之——线程
    spring基于@Value绑定属Bean性失
  • 原文地址:https://www.cnblogs.com/sdgtxuyong/p/10258864.html
Copyright © 2011-2022 走看看