Android ListView实现仿表格功能效果
Android 实现 功能 效果 表格 listview
2023-09-14 09:14:00 时间
一、仿表格功能效果:
1.ListView的样式下面有代码你可以修改
2.ListView的item文字显示不全就自动带“…”,想看全部的文字,可以改代码:item(可以获取对应的数据)点击事件转跳到另一个Activity才能看到全部的文字
二、ListViewActivity.java
public class ListViewActivity extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listview);
//设置表格标题的背景颜色
ViewGroup tableTitle = (ViewGroup) findViewById(R.id.table_title);
tableTitle.setBackgroundColor(Color.RED);
List<Goods> list = new ArrayList<Goods>();
list.add(new Goods("01", "伊利婴儿加盖奶粉110ml", "982323423232",34,23,23));
list.add(new Goods("02", "鱼翅", "31312323223",34,23,23));
list.add(new Goods("03", "农夫山泉", "12",34,23,23));
list.add(new Goods("04", "飞天茅台0", "12333435445",34,23,23));
list.add(new Goods("05", "农家小菜", "34523",34,23,23));
list.add(new Goods("06", "飞天消费菜", "345456",34,23,23));
list.add(new Goods("07", "旺仔小牛奶", "2344",34,23,23));
list.add(new Goods("08", "旺旺", "23445",34,23,23));
list.add(new Goods("09", "达利园超时牛奶", "3234345",34,23,23));
ListView tableListView = (ListView) findViewById(R.id.list);
TableAdapter adapter = new TableAdapter(this, list);
tableListView.setAdapter(adapter); }
}
1.布局activity_listview:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="3dip"
android:orientation="vertical">
<!--调用外部控件的布局list_item布局。-->
<View
android:layout_width="match_parent"
android:layout_height="1dip"
android:background="#A7A5A5" />
<include
android:id="@+id/table_title"
layout="@layout/list_item" />
<View
android:layout_width="match_parent"
android:layout_height="1dip"
android:background="#686867" />
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/shape_line_gray"
android:divider="#B4B3B3"
android:dividerHeight="1.0dip"
android:scrollbars="none"/>
</LinearLayout>
2.适配器和布局TableAdapter:
public class TableAdapter extends BaseAdapter {
private List<Goods> list;
private LayoutInflater inflater;
public TableAdapter(Context context, List<Goods> list){
this.list = list;
inflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
int ret = 0;
if(list!=null){
ret = list.size();
}
return ret;
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Goods goods = (Goods) this.getItem(position);
ViewHolder viewHolder;
if(convertView == null){
viewHolder = new ViewHolder();
convertView = inflater.inflate(R.layout.list_item, null);
viewHolder.goodId = (TextView) convertView.findViewById(R.id.text_id);
viewHolder.goodName = (TextView) convertView.findViewById(R.id.text_goods_name);
viewHolder.goodCodeBar = (TextView) convertView.findViewById(R.id.text_codeBar);
viewHolder.goodNum = (TextView) convertView.findViewById(R.id.text_num);
viewHolder.goodCurrPrice = (TextView) convertView.findViewById(R.id.text_curPrice);
viewHolder.goodMoney = (TextView) convertView.findViewById(R.id.text_money);
convertView.setTag(viewHolder);
}else{
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.goodId.setText(goods.getId());
viewHolder.goodId.setTextSize(13);
viewHolder.goodName.setText(goods.getGoodsName());
viewHolder.goodName.setTextSize(13);
viewHolder.goodCodeBar.setText(goods.getCodeBar());
viewHolder.goodCodeBar.setTextSize(13);
viewHolder.goodNum.setText(goods.getNum()+"");
viewHolder.goodNum.setTextSize(13);
viewHolder.goodCurrPrice.setText(goods.getCurPrice()+"");
viewHolder.goodCurrPrice.setTextSize(13);
viewHolder.goodMoney.setText(goods.getMoney()+"");
viewHolder.goodMoney.setTextSize(13);
return convertView;
}
public static class ViewHolder{
public TextView goodId;
public TextView goodName;
public TextView goodCodeBar;
public TextView goodNum;
public TextView goodCurrPrice;
public TextView goodMoney;
}
}
3.list_item.xml:
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/text_id"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:paddingBottom="10dip"
android:paddingTop="10dip"
android:textColor="#000000"
android:textSize="15sp"
android:singleLine="true"
android:text="序号" />
<View
android:layout_width="1dip"
android:layout_height="fill_parent"
android:background="#B4B3B3"/>
<TextView
android:id="@+id/text_goods_name"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="3"
android:paddingBottom="10dip"
android:paddingTop="10dip"
android:textColor="#000000"
android:textSize="15sp"
android:singleLine="true"
android:gravity="center"
android:text="商品名称" />
<View
android:layout_width="1dip"
android:layout_height="fill_parent"
android:background="#B4B3B3"/>
<TextView
android:id="@+id/text_codeBar"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="2"
android:paddingBottom="10dip"
android:textColor="#000000"
android:paddingTop="10dip"
android:singleLine="true"
android:textSize="15sp"
android:gravity="center"
android:text="条形码" />
<View
android:layout_width="1dip"
android:layout_height="fill_parent"
android:background="#B4B3B3"/>
<TextView
android:id="@+id/text_num"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:paddingBottom="10dip"
android:paddingTop="10dip"
android:textColor="#000000"
android:singleLine="true"
android:textSize="15sp"
android:gravity="center"
android:text="数量" />
<View
android:layout_width="1dip"
android:layout_height="fill_parent"
android:background="#B4B3B3"/>
<TextView
android:id="@+id/text_curPrice"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:paddingBottom="10dip"
android:textColor="#000000"
android:textSize="15sp"
android:singleLine="true"
android:paddingTop="10dip"
android:gravity="center"
android:text="现价" />
<View
android:layout_width="1dip"
android:layout_height="fill_parent"
android:background="#B4B3B3"/>
<TextView
android:id="@+id/text_money"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:paddingBottom="10dip"
android:singleLine="true"
android:textSize="15sp"
android:textColor="#000000"
android:paddingTop="10dip"
android:gravity="center"
android:text="金额" />
</LinearLayout>
4.实体类Goods.class:
public class Goods {
private String id;
private String goodsName;
private String codeBar;
private float num;
private float curPrice;
private float money;
public Goods() {
super();
}
public Goods(String id, String goodsName, String codeBar, float num,
float curPrice, float money) {
super();
this.id = id;
this.goodsName = goodsName;
this.codeBar = codeBar;
this.num = num;
this.curPrice = curPrice;
this.money = money;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getGoodsName() {
return goodsName;
}
public void setGoodsName(String goodsName) {
this.goodsName = goodsName;
}
public String getCodeBar() {
return codeBar;
}
public void setCodeBar(String codeBar) {
this.codeBar = codeBar;
}
public float getNum() {
return num;
}
public void setNum(float num) {
this.num = num;
}
public float getCurPrice() {
return curPrice;
}
public void setCurPrice(float curPrice) {
this.curPrice = curPrice;
}
public float getMoney() {
return money;
}
public void setMoney(float money) {
this.money = money;
}
}
5.绘制直角边框背景shape_line_gray.xml:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:right="0dp">
<shape android:shape="rectangle">
<solid android:color="#B4B3B3" />
</shape>
</item>
<item
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp">
<shape android:shape="rectangle">
<solid android:color="@color/white" />
</shape>
</item>
</layer-list>
相关文章
- Android代码优化----PullToRefresh+universal-image-loader实现从网络获取数据并刷新
- Android UI(三)SlidingMenu实现滑动菜单(详细 官方)
- Android高级控件(三)—— 使用Google ZXing实现二维码的扫描和生成相关功能体系
- EasyPlayer Android安卓流媒体播放器实现播放同步录像功能实现(附源码)
- EasyPlayer安卓Android流媒体播放器实现直播过程中客户端快照功能
- 基于EasyDarwin EasyPusher实现Android手机直播推送功能
- 《Android进阶之光》--RxJava实现RxBus
- 《android开发进阶从小工到专家》读书笔记--网络框架的设计与实现
- Android SwipeRefreshLayout 实现下拉刷新2
- Android 实现计时器
- 【Android笔记36】使用Android实现一个简易版本的购物车小案例(登录注册功能)
- Android实现TCP发送,可发送多条数据
- android 11.0 12.0控制Camera开启功能实现
- Android 9.0 系统管控Camera的启用和禁用功能实现
- Android kotlin自定义RecyclerView实现横竖滚动功能
- 猿创征文|Android kotlin实现动态更换应用图标和名称
- Android 仿Launcher3实现app图标随意拖拽交换位置功能
- android ViewFlipper实现垂直滚动动画
- Android 自定义动态Drawable实现动态指针时钟功能
- Android 自定义LineLayout实现满屏任意拖动
- Android 自定义View 实现自动吸附功能
- 【Android Gradle 插件】Gradle 自定义 Plugin 插件 ② ( buildSrc 目录中实现 Gradle 插件 | 实现 Gradle 插件代码 | 模块引入插件并编译 )
- Android多媒体开发-- android中OpenMax的实现整体框架
- Android kotlin 用RecyclerView(androidx+BRVAH3.0.6)实现下拉刷新和上拉加载更多(offset+limit)功能
- Android 实现仿西瓜视频列表自动播放的功能+ListView+JCVideoPlayerStandard