自己添加数据listview展示

写一个bean

class   Picture {
        private String title;
        private int imageId;

        public Picture(String title, int imageId) {
            super();
            this.title = title;
            this.imageId = imageId;
        }

        public Picture() {
            super();
        }

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }

        public int getImageId() {
            return imageId;
        }

        public void setImageId(int imageId) {
            this.imageId = imageId;
        }
    }

FragmentPage2

public class FragmentPage2 extends Fragment {

    private ListView listview2;
    View view;

    // 图片的文字标题 
    private String[] titles = new String[] { "资产入库", "资产出库", "资产查询", };
    // 图片ID数组 
    private int[] images = new int[] { R.drawable.u48, R.drawable.u48,
            R.drawable.u48 };

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.fragment_2, null);

        initview();

        PictureAdapter adapter = new PictureAdapter(titles, images,
                getActivity());
        listview2.setAdapter(adapter);

        listview2.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View v,
                    int position, long id) {
                Toast.makeText(getActivity(), "pic" + position,
                        Toast.LENGTH_SHORT).show();

                switch (position) {
                case 0:
                    Intent intent1=new Intent(getActivity(),SecActivity.class);
                    startActivity(intent1);
                    break;
                case 1:
                    Intent intent2=new Intent(getActivity(),ThreeActivity.class);
                    startActivity(intent2);
                    break;
                default:
                    break;
                }

            }
        });

        return view;
    }
// 初始化
    private void initview() {
        listview2 = (ListView) view.findViewById(R.id.listview2);
        TextView textView = (TextView) view.findViewById(R.id.title_id);
        textView.setVisibility(View.VISIBLE);
        textView.setText("资产管理");
    }

PictureAdapter

class PictureAdapter extends BaseAdapter {

        private List<Picture> pictures;
        private LayoutInflater inflater;

        public PictureAdapter(String[] titles, int[] images, Context context) {
            super();
            pictures = new ArrayList<Picture>();
            inflater = LayoutInflater.from(context);
            for (int i = 0; i < images.length; i++) {
                Picture picture = new Picture(titles[i], images[i]);
                pictures.add(picture);
            }

        }

        @Override
        public int getCount() {

            if (null != pictures) {
                return pictures.size();
            } else {
                return 0;
            }

        }

        @Override
        public Object getItem(int position) {
            return pictures.get(position);
        }

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

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {

            ViewHolder viewHolder;
            if (convertView == null) {
                convertView = inflater.inflate(R.layout.picture_item2, null);
                viewHolder = new ViewHolder();
                viewHolder.picture_title2 = (TextView) convertView
                        .findViewById(R.id.picture_title2);
                viewHolder.picture_image2 = (ImageView) convertView
                        .findViewById(R.id.picture_image2);
                convertView.setTag(viewHolder);
            } else {
                viewHolder = (ViewHolder) convertView.getTag();
            }

            viewHolder.picture_title2
                    .setText(pictures.get(position).getTitle());
            viewHolder.picture_image2.setImageResource(pictures.get(position)
                    .getImageId());

            return convertView;
        }

        class ViewHolder {
            public TextView picture_title2;
            public ImageView picture_image2;
        }

    }

最后效果
这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自定义数据ListView通常是在Android开发中用来显示一组动态数据的控件,它结合了列表和视图的优点,可以展示丰富的用户界面元素。以下是自定义数据ListView的基本步骤: 1. **继承AdapterView基类**:你需要创建一个继承自`ArrayAdapter`, `BaseAdapter`, 或者 `CursorAdapter`的子类,用于绑定数据ListView。 ```java public class CustomAdapter extends ArrayAdapter<String> { // 添加构造函数,传递数据源和布局资源 public CustomAdapter(Context context, int resource, List<String> objects) { super(context, resource, objects); } // 重写getView()方法,这里是关键,用于为每个列表项创建视图 @NonNull @Override public View getView(int position, View convertView, ViewGroup parent) { // 创建或获取ViewHolder(如果convertView已存在) ViewHolder viewHolder; if (convertView == null) { viewHolder = new ViewHolder(); convertView = LayoutInflater.from(getContext()).inflate(R.layout.item_layout, parent, false); viewHolder.textView = convertView.findViewById(R.id.text_view); // 将ViewHolder保存在convertView上 convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } // 设置视图的文本 viewHolder.textView.setText(getItem(position)); return convertView; } // 内部类ViewHolder用于存储需要在视图中复用的对象 static class ViewHolder { TextView textView; } } ``` 2. **创建布局文件**(item_layout.xml):定义每个列表项的视图结构。 3. **设置数据源**:在你的Activity或Fragment中初始化ListView,并设置你的自定义Adapter: ```java ListView listView = findViewById(R.id.listView); CustomAdapter adapter = new CustomAdapter(this, R.layout.item_layout, dataList); listView.setAdapter(adapter); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值