accept_task.java
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 List<Task>sort_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<Task>();
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<Task>();
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<Task>();
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<Task>();
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
<?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"
>
<LinearLayout
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<Button
android:id="@+id/Points_sort"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="按积分排序"
android:layout_weight="1"
android:background="@drawable/shape1"
/>
<Button
android:id="@+id/Distance_sort"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="按距离排序"
android:layout_weight="1"
android:background="@drawable/shape1"
/>
<Button
android:id="@+id/Time_sort"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="按结束时间排序"
android:background="@drawable/shape1"
android:layout_weight="1"
/>
</LinearLayout>
<TextView
android:id="@+id/text_lat_lon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="10sp"
android:visibility="gone"
/>
<!-- android:visibility="gone"-->
<ListView
android:id="@+id/lv_SortList"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="8dp"
android:background="#1659506A"
android:paddingTop="10dp" />
</LinearLayout>
适配器Adapter_AcceptTask
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<Task> sort_list; //存放服务器传来的数据
private LayoutInflater _inflater; //item布局
public Adapter_AcceptTask(Context context,List<Task> 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样式
<?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"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:background="@color/colorWhite"
android:orientation="horizontal">
<ImageView
android:id="@+id/task_img"
android:layout_width="98dp"
android:layout_height="114dp"
android:src="@drawable/task" />
<RelativeLayout
android:layout_width="210dp"
android:layout_height="wrap_content">
<TextView
android:id="@+id/list_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="任务名"
android:textSize="23sp" />
<TextView
android:id="@+id/list_distance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="距离"
android:textSize="22sp"
android:layout_below="@+id/list_name"/>
<TextView
android:id="@+id/list_score"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="积分"
android:textSize="22sp"
android:layout_below="@+id/list_distance"/>
<TextView
android:id="@+id/list_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="时间"
android:textSize="22sp"
android:layout_below="@+id/list_score"/>
<TextView
android:id="@+id/position_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="22sp"
android:layout_below="@+id/list_score"
android:visibility="gone"
/>
<TextView
android:id="@+id/position_username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="22sp"
android:layout_below="@+id/list_score"
android:visibility="gone"
/>
<TextView
android:id="@+id/taskcontent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="22sp"
android:layout_below="@+id/list_score"
android:visibility="gone"
/>
</RelativeLayout>
<Button
android:id="@+id/btn_detail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="详情"
android:background="@drawable/white"
android:textColor="#0BD5C1"
android:layout_gravity="center"
android:textSize="23sp"
/>
</LinearLayout>
</LinearLayout>
结果图,上面三个按钮代表不同的ListView。