listview 最简单也最困难1

代码最重要

package com.weidingqiang.custommooc.views.widgets;

import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.AdapterView;
import android.widget.LinearLayout;
import android.widget.ListView;

import com.weidingqiang.custommooc.R;
import com.weidingqiang.custommooc.models.LeftMenuVO;
import com.weidingqiang.custommooc.views.adapters.LeftMenuAdapter;
import com.weidingqiang.custommooc.views.interfaces.LeftMenuViewImp;

/**
 * Created by weidingqiang on 15/11/26.
 */
public class LeftMenuView extends LinearLayout {

    private LeftMenuViewImp leftMenuViewImp;

    private ListView listView;

    private LeftMenuAdapter leftMenuAdapter;

    public void setLeftMenuViewImp(LeftMenuViewImp leftMenuViewImp) {
        this.leftMenuViewImp = leftMenuViewImp;
    }

    public LeftMenuView(Context context) {
        this(context, null);
    }

    public LeftMenuView(Context context, AttributeSet attrs) {
        super(context, attrs);

        LayoutInflater layoutInflater = LayoutInflater.from(context);
        layoutInflater.inflate(R.layout.left_menu_view,this,true);

        initView();
        initData();
        initEvent();
    }

    private void initView(){
        listView =(ListView) this.findViewById(R.id.left_listview);
    }

    private void initData(){
        leftMenuAdapter = new LeftMenuAdapter(getContext());
        listView.setAdapter(leftMenuAdapter);
    }

    private void initEvent(){
        listView.setOnItemClickListener(new DrawerItemClickListener());
    }

    /* The click listner for ListView in the navigation drawer */
    private class DrawerItemClickListener implements ListView.OnItemClickListener {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            LeftMenuVO selectLeftMenuVO = (LeftMenuVO) leftMenuAdapter.leftMenuVOs.get(position);
            if(selectLeftMenuVO.isSelected())
                return;

            for (int i = 0;i<leftMenuAdapter.getCount();i++)
            {
                LeftMenuVO leftMenuVO = (LeftMenuVO) leftMenuAdapter.leftMenuVOs.get(i);

                leftMenuVO.setSelected(i == position);
            }

            leftMenuViewImp.leftselectItem(position);
            leftMenuAdapter.notifyDataSetChanged();
        }
    }
}

adapter

package com.weidingqiang.custommooc.views.adapters;

import android.content.Context;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.weidingqiang.custommooc.R;
import com.weidingqiang.custommooc.models.LeftMenuVO;
import com.weidingqiang.custommooc.utils.MoocUtils;
import com.weidingqiang.custommooc.views.viewholder.LeftMenuViewHolder;

import java.util.List;

/**
 * Created by weidingqiang on 15/11/26.
 */
public class LeftMenuAdapter extends BaseAdapter {

    public List<LeftMenuVO> leftMenuVOs;

    private LayoutInflater mInflater;

    public LeftMenuAdapter(Context context) {
        super();
        leftMenuVOs = MoocUtils.leftMenuData();
        this.mInflater = LayoutInflater.from(context);
    }

    @Override
    public int getCount() {
        return leftMenuVOs.size();
    }

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

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

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

        LeftMenuViewHolder holder = null;
        if (convertView == null) {

            holder=new LeftMenuViewHolder();

            convertView = mInflater.inflate(R.layout.left_menu_list_item, null);
            holder.imageView = (ImageView)convertView.findViewById(R.id.left_list_item_imageview);
            holder.textView = (TextView)convertView.findViewById(R.id.left_list_item_textview);
            convertView.setTag(holder);

        }else {
            holder = (LeftMenuViewHolder)convertView.getTag();
        }

        LeftMenuVO leftMenuVO = (LeftMenuVO)getItem(position);
        if(leftMenuVO.isSelected()){
            holder.imageView.setBackgroundResource(leftMenuVO.getPressdrawable());
            convertView.setBackgroundColor(Color.parseColor("#E1E2E4"));
        }else
        {
            holder.imageView.setBackgroundResource(leftMenuVO.getNormaldrawable());
            convertView.setBackgroundColor(Color.parseColor("#FFFFFF"));
        }

        holder.textView.setSelected(leftMenuVO.isSelected());
        holder.textView.setText(leftMenuVO.getLabel());
        return convertView;
    }
}

  

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/left_list_item_bg"
    >

    <ImageView
        android:layout_marginLeft="40dp"
        android:layout_marginTop="16dp"
        android:layout_marginBottom="16dp"
        android:id="@+id/left_list_item_imageview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
    <TextView
        android:layout_marginLeft="10dp"
        android:layout_marginTop="16dp"
        android:layout_marginBottom="16dp"
        android:id="@+id/left_list_item_textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@drawable/left_list_text_color_item"
        />
</LinearLayout>
时间: 2024-10-11 13:09:45

listview 最简单也最困难1的相关文章

listview 最简单也最困难3

源文件 android中listView下拉刷新  链接在 http://www.cnblogs.com/xiaoran1129/archive/2012/07/04/2576221.html package com.tianxia.lib.baseworld.widget; import java.text.SimpleDateFormat; import java.util.Date; import android.content.Context; import android.os.Han

Oracle网络公开课《蛋炒饭,最简单也最困难——我理解的Oracle增删改查与你不同》

2014年4月18日是<舌尖2>开播的日子(正好是这次网络课的三个月前),吃货们早早准备,连某冰冰也发了这样的微博:"据说今儿晚上不吃饱不能打开电视机,重大杀器<舌尖上的中国>正在出没.嘿嘿,我已经准备好充足的零食,麻溜地坐电视机前了,你呢?" 本节课主要谈和吃有关的话题. 本课主要通过回顾两部电影和纪录片--<食神>和<舌尖上的中国2>,来谈谈如何对百万行以上数据进行增删改查的操作,这些操作和本课的标题一样--蛋炒饭,最简单也最困难,是

ListView的简单使用

简单来说,ListView简单是一个可以垂直滚动的列表控件. ListView的简单使用: 在布局中加入ListView控件,并为ListView制定一个id,具体代码如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_p

Win8 App使用Listview的简单方法

这是Win8 App神圣不可侵犯的头文件: <head> <meta charset="utf-8"> <title>ListViewExample</title> <!-- WinJS references --> <link href="//Microsoft.WinJS.0.6/css/ui-light.css" rel="stylesheet"> <script

ListView 的简单应用包括点击事件

项目当中用到了ListView ,今天抽出时间整理了一下ListView的简单用法. public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener ,AdapterView.OnItemClickListener,AbsListView.OnScrollListener{ private ListView listView; privat

listview和简单的记事本操作

listview: 1 //每一列的列名用Columns集合添加 2 ListViewItem lv = new ListViewItem(); 3 lv.Text = s.Code.ToString();//每一行的第一列的项通过text添加 4 lv.SubItems.Add(s.Name);//每一行的其他列的项通过SubItems集合添加 5 lv.SubItems.Add(s.Sex); 6 lv.SubItems.Add(s.Birthday.ToString("yyyy年MM月dd

一个listview嵌套listview的简单例子

在我刚刚看到一个页面是需要listview嵌套listview的时候  我内心是拒绝的, 这种设计也太傻逼了啊.. 但是不能退缩不是,其实也很简单,关键都在Adapter中 在最外层的listview ,讲第二层的listview当成一个简单的控件,比如textview啥的  你比较好理解的东西 写进viewholder中 比如: public static class ViewHolder { public TextView mTextView; //体检项目的分类 如:车身报告 public

Android——ListView实现简单列表

最近做一个black ant的温控系统项目,里面有很多列表项,但是用的时候,感觉封装的已经挺好的了,自己拿过来改改代码就行了,所以用过之后也没什么感觉.现在趁着闲暇时间整理下简单的ListView,体会下这个东西到底是怎么个原理. 首先看下实现效果: 其中,每一条列表项加的是一个Image跟一个TextView,数据源绑定在了TextView上面. 首先,添加两个layout文件: 列表(item)的布局文件: <?xml version="1.0" encoding="

C# 系统应用之ListView实现简单图片浏览器

最近有同学问我如何使用ListView加载图片列表,前面在"C#系统应用"中TreeView+ListView+ContextMenuStrip控件实现树状图显示磁盘目录,并在ListView中显示文件的详细信息.这里准备简单介绍下给同学讲述的如何使用ListView+ImageList控件实现简单的图片浏览器知识.        第一步 设计界面框架如下图所示,同时添加ImageList控件(不可见) 注意:设置ListView控件的Anchor属性为Top,Bottom,Right