【发布时间】:2017-11-29 09:15:10
【问题描述】:
我正在用 Java 编写一个应用程序,我想在其中显示商店的完整时间表以及人何时进出以及何时无人。请检查所附图片。在此处输入图片说明
人员列表在 JSON 文件中:
{
"venue": {
"id": 123456,
"name": "Foursquare HQ",
"openTime": 1479798000000,
"closeTime": 1479864600000,
"visitors": [
{
"id": 1,
"name": "Dave",
"arriveTime": 1479805200000,
"leaveTime": 1479816000000
},
{
"id": 2,
"name": "Elizabeth",
"arriveTime": 1479801600000,
"leaveTime": 1479819600000
},
{
"id": 3,
"name": "Ben",
"arriveTime": 1479826800000,
"leaveTime": 1479830400000
},...
这个 json 被提取出来,可以通过一个叫做 getVisitors 的方法访问,它返回一个 List。 Person 类声明如下:
public final class Person{
private int id;
private String name;
private long arriveTime;
private long leaveTime;
public Person(int id, String name, long arriveTime, long leaveTime){
this.id = id;
this.name = name;
this.arriveTime = arriveTime;
this.leaveTime = leaveTime;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public long getArriveTime() {
return arriveTime;
}
public long getLeaveTime() {
return leaveTime;
}
}
我的问题是如何添加“无访客”项目?第一个和最后一个可以使用
list.add(idx, element)
但我没有看到一个简单的算法可以在白天找到访客之间的空位。
当商店内没有访客出现时,必须显示“没有访客”。基本上是 2 位访客之间的任何差距,并且基于商店的整体 openTime 和 closeTime
我正在使用 RecycledView 将信息显示为列表,如下所示:
public class MainActivity extends AppCompatActivity {
private static final String TAG = MainActivity.class.getSimpleName();
private RecyclerView rvRecyclerView;
private static PersonAdapter personAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rvRecyclerView = findViewById(R.id.rvRecyclerView);
rvRecyclerView.setLayoutManager(new LinearLayoutManager(this));
if(personAdapter == null)
personAdapter = new PersonAdapter();
//set the adapter of the recycler view to push data.
rvRecyclerView.setAdapter(personAdapter);
Log.d(TAG, "ON CREATE CALL");
new VenueFetcher(this).execute();
}
VenueFetch 是一个 AsyncTask,负责从 JSON 文件中提取 JSON 并使用调用来
mainActivity.personAdapter.notifyDataSetChanged();
更新部分工作的列表
有什么想法吗?
【问题讨论】: