【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); } }