请选择 进入手机版 | 继续访问电脑版

Android适配器的使用

[复制链接]
钟启航 发表于 2021-1-1 18:31:31 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
accept_task.java
  1. package com.example.surface_x;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.ListView;import android.widget.TextView;import com.example.surface_x.Bean.Task;import com.example.surface_x.Bean.User;import com.example.surface_x.adapter.Adapter_AcceptTask;import java.util.ArrayList;import java.util.Date;import java.util.List;public class accept_task extends AppCompatActivity implements View.OnClickListener {    private Button Points_sort,Distance_sort,Time_sort;//按积分,间隔,时间排序    private ListView listView; //list视图区域    private Adapter_AcceptTask adapter_acceptTask;    //存放排序的适配器    private Listsort_list;    //存放任务的排序信息    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_accept_task);        Points_sort = findViewById(R.id.Points_sort);        Distance_sort = findViewById(R.id.Distance_sort);        Time_sort = findViewById(R.id.Time_sort);        listView = findViewById(R.id.lv_SortList);              //初始化适配器        init_List();        Points_sort.setOnClickListener(this);        Distance_sort.setOnClickListener(this);        Time_sort.setOnClickListener(this);    }    /**     * 以经纬度坐标为参数,向服务器发送一条请求,并吸收服务器的数据显示     * 第一次跳转在以下方法中进行数据的申请和显示     */    public void init_List(){        //请求服务器,将服务器中的信息存放到List数组中        User user = new User();        user.setUsername("张三");        //测试        Task tk = new Task("找东西", "11米", 88, new Date(),"天津",user,"找东西");        Task tk2 = new Task("看电影", "22米", 22, new Date(),"第三大街",user,"看电影");        Task tk3 = new Task("听音乐", "33米", 33, new Date(),"宿舍",user,"听音乐");        sort_list = new ArrayList();        sort_list.add(tk);        sort_list.add(tk2);        sort_list.add(tk3);        //适配器初始化        adapter_acceptTask = new Adapter_AcceptTask(this,sort_list);        listView.setAdapter(adapter_acceptTask);    }    /*     * 这里需要请求服务器将服务器传来的数据存储到list中     * 在点击积分排序事件中初始化适配器     * */    public void init_List_points(){        //请求服务器,将服务器中的信息存放到List数组中        //score参数用于发到服务器,判断        String score ;        //测试        User user = new User();        user.setUsername("李四");        Task tj = new Task("坐车", "100千米", 22, new Date(),"天津站",user,"坐车");        sort_list = new ArrayList();        sort_list.add(tj);        //适配器初始化        adapter_acceptTask = new Adapter_AcceptTask(this,sort_list);        listView.setAdapter(adapter_acceptTask);    }    /*     * 这里需要请求服务器将服务器传来的数据存储到list中     * 在点击间隔排序事件中初始化适配器     * */    public void init_List_Distance(){        //请求服务器,将服务器中的信息存放到List数组中        //distance参数用于发到服务器,判断        String distance ;        //测试        User user = new User();        user.setUsername("赵五");        Task td1 = new Task("吃", "1千米", 66, new Date(),"天津站",user,"吃");        Task td2 = new Task("喝", "2千米", 22, new Date(),"河西站",user,"喝");        Task td3 = new Task("玩", "3千米", 33, new Date(),"河东站",user,"玩");        sort_list = new ArrayList();        sort_list.add(td1);        sort_list.add(td2);        sort_list.add(td3);        //初始化适配器        adapter_acceptTask = new Adapter_AcceptTask(this,sort_list);        listView.setAdapter(adapter_acceptTask);    }    /*     * 这里需要请求服务器将服务器传来的数据存储到list中     * 在点击时间排序事件中初始化适配器     * */    public void init_List_Time(){        //请求服务器,将服务器中的信息存放到List数组中        //time参数用于发到服务器,判断        String time ;        //测试        User user = new User();        user.setUsername("王六");        Task td1 = new Task("去泰达", "10千米", 66, new Date(),"天津站",user,"坐车");        Task td2 = new Task("去河西", "10千米", 66, new Date(),"河西区",user,"坐车");        Task td3 = new Task("去河东", "10千米", 66, new Date(),"河东区",user,"坐车");        Task td4 = new Task("去武清", "10千米", 66, new Date(),"武清区",user,"坐车");        Task td5 = new Task("去北辰", "10千米", 66, new Date(),"北辰区",user,"坐车");        Task td6 = new Task("去滨海", "10千米", 66, new Date(),"滨海区",user,"坐车");        sort_list = new ArrayList();        sort_list.add(td1);        sort_list.add(td2);        sort_list.add(td3);        sort_list.add(td4);        sort_list.add(td5);        sort_list.add(td6);        //初始化设配器        adapter_acceptTask = new Adapter_AcceptTask(this,sort_list);        listView.setAdapter(adapter_acceptTask);    }    @Override    public void onClick(View view) {        switch (view.getId()){            case R.id.Points_sort :                //测试                init_List_points();                break;            case R.id.Distance_sort :                //测试                init_List_Distance();                break;            case R.id.Time_sort :                //测试                init_List_Time();                break;            default:                break;        }    }}
复制代码
activity_accept_task.xml
  1.                     
复制代码
适配器Adapter_AcceptTask
  1. package com.example.surface_x.adapter;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.Button;import android.widget.ImageView;import android.widget.TextView;import com.example.surface_x.Bean.Task;import com.example.surface_x.DetailActivity;import com.example.surface_x.R;import java.text.SimpleDateFormat;import java.util.List;public class Adapter_AcceptTask extends BaseAdapter {    private Context context;            //map运动的context    private List sort_list;       //存放服务器传来的数据    private LayoutInflater _inflater;   //item布局    public Adapter_AcceptTask(Context context,List sort_list){        this.sort_list = sort_list;        this.context = context;        this._inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);    }    //存放控件    class ViewHolder2 {        public TextView list_name;      //人物名控件        public TextView list_distance;  //间隔控件        public TextView list_score;     //积分控件        public TextView list_time;      //时间控件        public Button btn_detail;       //按键控件        public ImageView task_img;      //左侧标题控件        public TextView position_name,username,taskcontent;//任务所在、发布者名称、任务详细内容    }    //返回个数    @Override    public int getCount() {        return sort_list.size();    }    @Override    public Object getItem(int position) {        return position;    }    @Override    public long getItemId(int position) {        return position;    }    @Override    public View getView(int position, View convertView, ViewGroup viewGroup) {        final ViewHolder2 vh;        if (convertView == null) {//第一次进入适配器就绑定控件            convertView = _inflater.inflate(R.layout.item_sort_list, null);            vh = new ViewHolder2();            vh.list_name = convertView.findViewById(R.id.list_name);            vh.list_distance = convertView.findViewById(R.id.list_distance);            vh.list_score = convertView.findViewById(R.id.list_score);            vh.list_time = convertView.findViewById(R.id.list_time);            vh.btn_detail = convertView.findViewById(R.id.btn_detail);            vh.task_img = convertView.findViewById(R.id.task_img);            vh.position_name = convertView.findViewById(R.id.position_name);            vh.username = convertView.findViewById(R.id.position_username);            vh.taskcontent = convertView.findViewById(R.id.taskcontent);            //绑定控件            convertView.setTag(vh);        }else{            vh = (Adapter_AcceptTask.ViewHolder2) convertView.getTag();        }        //得到相应的任务实体类        final Task task = sort_list.get(position);        if (task !=null){            //显示到页面上            vh.list_name.setText(task.getTaskname());//任务名            vh.list_distance.setText(task.getDistance());//任务间隔            vh.list_score.setText(task.getTaskintegral().toString());//任务积分            //自定义时间格式            SimpleDateFormat fo = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");            String date = fo.format(task.getTaskneedfishtime());            vh.list_time.setText(date);//任务完成时间            vh.position_name.setText(task.getPosition());//所在            vh.username.setText(task.getPublisher().getUsername());//发布者            vh.taskcontent.setText(task.getTaskcontent());//任务内容        }        vh.btn_detail.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                //详细信息页面                Intent intent = new Intent(context, DetailActivity.class);                Bundle bundle1 = new Bundle();                Log.d("信息",vh.position_name.getText().toString()+vh.list_score.getText().toString()                +vh.username.getText().toString()+vh.taskcontent.getText().toString());                //1.任务所在                bundle1.putString("position_name",vh.position_name.getText().toString());                //2.任务的积分                bundle1.putString("taskintegral",vh.list_score.getText().toString());                //3.任务发布者昵称                bundle1.putString("username",vh.username.getText().toString());                //4.任务的详细信息(内容)                bundle1.putString("taskcontent",vh.taskcontent.getText().toString());                //数据通报并跳转到吸收任务界面                intent.putExtras(bundle1);                context.startActivity(intent);            }        });        return convertView;    }}
复制代码
item_sort_list.xml设置每一个小item样式
  1.                                                                                                 
复制代码
效果图,上面三个按钮代表差别的ListView。


来源:https://blog.csdn.net/kaikai_gege/article/details/111941008
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )