zoukankan      html  css  js  c++  java
  • 【Android-ListView控件】显示信息

    效果图

    布局文件

    layout - activity_main.xml

    在主布局添加一个listview控件

    <?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:orientation="vertical" >
    
        <ListView
            android:id="@+id/lv_list"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
        </ListView>
    
    </LinearLayout>

    layout - list_item.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/app_click_white_grey"
        android:orientation="horizontal" >
    
        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginBottom="12.0dip"
            android:layout_marginLeft="15.0dip"
            android:layout_marginTop="12.0dip"
            android:layout_weight="1.0"
            android:orientation="vertical" >
    
            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="产品编码:"
                    android:textColor="#ff333333"
                    android:textSize="16.0sp" />
    
                <TextView
                    android:id="@+id/tv_code"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5.0dip"
                    android:textColor="#ff333333"
                    android:textSize="16.0sp" />
            </LinearLayout>
    
            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="4.0dip"
                android:orientation="horizontal" >
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="产品名称:"
                    android:textColor="#ff666666"
                    android:textSize="14.0sp" />
    
                <TextView
                    android:id="@+id/tv_name"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5.0dip"
                    android:textColor="#ff666666"
                    android:textSize="14.0sp" />
            </LinearLayout>
    
            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="4.0dip"
                android:orientation="horizontal" >
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="规格型号:"
                    android:textColor="#ff666666"
                    android:textSize="14.0sp" />
    
                <TextView
                    android:id="@+id/tv_spec"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5.0dip"
                    android:textColor="#ff666666"
                    android:textSize="14.0sp" />
            </LinearLayout>
    
            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="4.0dip"
                android:orientation="horizontal" >
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="数量:"
                    android:textColor="#ff666666"
                    android:textSize="14.0sp" />
    
                <TextView
                    android:id="@+id/tv_qty"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5.0dip"
                    android:textColor="#ff666666"
                    android:textSize="14.0sp" />
            </LinearLayout>
        </LinearLayout>
    
        <TextView
            android:id="@+id/tv_status"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginRight="15.0dip"
            android:background="@drawable/shape22_rad_frame"
            android:gravity="center"
            android:padding="5.0dip"
            android:text="已出库"
            android:textColor="#ffff5757"
            android:textSize="16.0sp" />
    
    </LinearLayout>

    drawable - app_click_white_grey.xml

    点击ListView的item ,按下变灰

    <?xml version="1.0" encoding="utf-8"?>
    <selector
      xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_pressed="true" android:drawable="@color/click_grey" />
        <item android:state_pressed="false" android:drawable="@color/white" />
    </selector>

    drawable - shape22_rad_frame.xml

    给textview 加上圆角边框 如:

    <?xml version="1.0" encoding="utf-8"?>
    <shape android:shape="rectangle"
      xmlns:android="http://schemas.android.com/apk/res/android">
        <corners android:radius="10.0px" />
        <stroke android:width="2.0px" android:color="#ffff5757" />
        <solid android:color="@color/white" />
    </shape>

    values - color.xml

    用到的颜色

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    
        <color name="white">#ffffffff</color>
        <color name="click_grey">#ffd9d9d9</color>
    
    </resources>

    Java代码 MainActivity.xml

    把数据填充到ListView显示,并实现ListView点击事件,ListView长点击事件

    import java.util.ArrayList;
    import java.util.HashMap;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.AdapterView.OnItemLongClickListener;
    import android.widget.ListView;
    import android.widget.SimpleAdapter;
    
    public class MainActivity extends Activity {
    
        ListView lv_list;
        ArrayList<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            lv_list = (ListView) findViewById(R.id.lv_list);
    
            initData();// 初始化数据
    
            // listview行点击事件
            lv_list.setOnItemClickListener(new OnItemClickListener() {
    
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    
                    HashMap<String, Object> map = (HashMap<String, Object>) parent.getItemAtPosition(position);// 根据item位置获取数据
                    // TODO:具体操作
                }
            });
            // listview行长点击事件
            lv_list.setOnItemLongClickListener(new OnItemLongClickListener() {
    
                @Override
                public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
                    // TODO:具体操作
                    return false;
                }
            });
    
        }
    
        private void initData() {
            // 添加10条演示数据
            data.clear();
            for (int i = 0; i < 10; i++) {
                HashMap<String, Object> map = new HashMap<String, Object>();
                map.put("code", "apple" + i);
                map.put("name", "苹果" + i);
                map.put("spec", "xxx-xx" + i);
                map.put("qty", 1 + i);
                map.put("status", "已出库");
                data.add(map);
            }
            //数据填充到适配器
            SimpleAdapter adapter = new SimpleAdapter(MainActivity.this, data, R.layout.list_item, new String[] { "code", "name", "spec", "qty", "status" },
                    new int[] { R.id.tv_code, R.id.tv_name, R.id.tv_spec, R.id.tv_qty, R.id.tv_status });
            //数据填充到listview
            lv_list.setAdapter(adapter);
        }
    
    }
  • 相关阅读:
    CF1329A Dreamoon Likes Coloring(贪心)
    CF1330B Dreamoon Likes Permutations
    AcWing338 计数问题(数位dp)
    AcWing311 月之谜(数位dp)
    AcWing310 启示录(数位dp)
    CF1332E Height All the Same(数学)
    CF1332D Walk on Matrix(构造)
    CF1332C K-Complete Word(思维)
    js作用域
    js原型链笔记
  • 原文地址:https://www.cnblogs.com/Sukie-s-home/p/8377386.html
Copyright © 2011-2022 走看看