栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android(二十四):Adapter之BaseAdapter

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android(二十四):Adapter之BaseAdapter

展示

目录

样式
  • Resources/drawable/blue_icon.xml
    
    
        
            
                
                
                
            
        
    
    
  • Resources/drawable/green_icon.xml
    
    
        
            
                
                
                
            
        
    
    
  • Resources/drawable/btn_bg.xml
    
    
        
            
                
                
            
        
    
    
  • Resources/drawable/item_bg.xml
    
    
        
            
                
                
            
        
    
    
根布局 Resources/layout/main.xml


    

主布局 Resources/layout/content.xml


    
    

    scrollbars          去掉滚动条
    overScrollMode      去掉上下滚动阴影
    divider             分割线颜色
    dividerHeight       分割线高度


单条布局 Resources/layout/list_item.xml




    
    

        

        

        

        

    
    
    

        

            

            

        

        

            

            

        

    
    
    

        

        

        

        

        

        
行程类 scripts/TripInfo.cs
namespace android_by_csharp.scripts
{
    public class TripInfo
    {
        public readonly string StartCity;
        public readonly  string EndCity;
        public readonly  string Time;
        public readonly  string StartAddress;
        public readonly  string EndAddress;
        public readonly  float Price;
        public readonly  string Name;
        public readonly  string Distance;

        public TripInfo(string startCity, string endCity, string time, string startAddress, string endAddress, float price, string name, string distance)
        {
            StartCity = startCity;
            EndCity = endCity;
            Time = time;
            StartAddress = startAddress;
            EndAddress = endAddress;
            Price = price;
            Name = name;
            Distance = distance;
        }
    }
}
行程Adapter scripts/TripInfoAdapter.cs
using System;
using System.Collections.Generic;
using Android.Content;
using Android.Views;
using Android.Widget;
using Object = Java.Lang.Object;

namespace android_by_csharp.scripts
{
    public class TripInfoAdapter : baseAdapter
    {
        private readonly List _tripInfos;
        private readonly LayoutInflater _context;

        public TripInfoAdapter(Context context, List tripInfos)
        {
            _tripInfos = tripInfos;
            _context = LayoutInflater.From(context);
        }

        public override Object GetItem(int position)
        {
            return null;
        }

        public override long GetItemId(int position)
        {
            return position;
        }

        public override View GetView(int position, View convertView, ViewGroup parent)
        {
            convertView = _context.Inflate(Resource.Layout.list_item, parent, false);

            var startCity = (TextView)convertView?.FindViewById(Resource.Id.start_city);
            if (startCity != null) startCity.Text = _tripInfos[position].StartCity;

            var endCity = (TextView)convertView?.FindViewById(Resource.Id.end_city);
            if (endCity != null) endCity.Text = _tripInfos[position].EndCity;

            var time = (TextView)convertView?.FindViewById(Resource.Id.time);
            if (time != null) time.Text = _tripInfos[position].Time;

            var startAddress = (TextView)convertView?.FindViewById(Resource.Id.start_address);
            if (startAddress != null) startAddress.Text = _tripInfos[position].StartAddress;

            var endAddress = (TextView)convertView?.FindViewById(Resource.Id.end_address);
            if (endAddress != null) endAddress.Text = _tripInfos[position].EndAddress;

            var price = (TextView)convertView?.FindViewById(Resource.Id.price);
            if (price != null) price.Text = _tripInfos[position].Price.ToString();

            var name = (TextView)convertView?.FindViewById(Resource.Id.name);
            if (name != null) name.Text = _tripInfos[position].Name;

            var distance = (TextView)convertView?.FindViewById(Resource.Id.distance);
            if (distance != null) distance.Text = _tripInfos[position].Distance;

            var goBtn = (Button)convertView?.FindViewById(Resource.Id.go_btn);
            if (goBtn != null)
                goBtn.Click += (sender, args) =>
                {
                    var data = _tripInfos[position];
                    Console.WriteLine(data);
                };

            return convertView;
        }

        public override int Count => _tripInfos.Count;
    }
}
MainActivity.cs
using System.Collections.Generic;
using android_by_csharp.scripts;
using Android.App;
using Android.OS;
using Android.Widget;

namespace android_by_csharp
{
    [Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
    public class MainActivity : Activity
    {
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.main);

            var listView = (ListView)FindViewById(Resource.Id.list_view);
            var list = new List
            {
                new TripInfo("天津", "北京", "2020-01-01 上午", "天津市南开区", "北京故宫", 100f, "张三", "80km"),
                new TripInfo("天津", "北京", "2020-01-01 上午", "天津市南开区", "北京故宫", 100f, "张三", "80km"),
                new TripInfo("天津", "北京", "2020-01-01 上午", "天津市南开区", "北京故宫", 100f, "张三", "80km"),
                new TripInfo("天津", "北京", "2020-01-01 上午", "天津市南开区", "北京故宫", 100f, "张三", "80km"),
                new TripInfo("天津", "北京", "2020-01-01 上午", "天津市南开区", "北京故宫", 100f, "张三", "80km"),
                new TripInfo("天津", "北京", "2020-01-01 上午", "天津市南开区", "北京故宫", 100f, "张三", "80km"),
                new TripInfo("天津", "北京", "2020-01-01 上午", "天津市南开区", "北京故宫", 100f, "张三", "80km"),
                new TripInfo("宝坻", "天津", "2020-02-02 下午", "宝坻区", "天津市", 12.5f, "ProsperLee", "42.123km")
            };
            var tripInfoAdapter = new TripInfoAdapter(this, list);
            if (listView != null) listView.Adapter = tripInfoAdapter;
        }
    }
}
新增数据
// scripts/TripInfoAdapter.cs
public void Add(TripInfo tripInfo)
{
    _tripInfos.Add(tripInfo);
    NotifyDataSetChanged(); // 刷新
}

// MainActivity.cs
var addBtn = (Button)FindViewById(Resource.Id.add_btn);
addBtn.Click += (sender, args) =>
{
    tripInfoAdapter.Add(new TripInfo("天津", "北京", "2020-01-01 上午", "天津市南开区", "北京故宫", 100f, "张三", "80km"));
};
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/340140.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号