如何在android中获取paing列表中的排序时间戳
我想显示排序后的时间戳列表 以下是步骤如何在android中获取paing列表中的排序时间戳,android,list,pagination,timestamp,retrofit,Android,List,Pagination,Timestamp,Retrofit,我想显示排序后的时间戳列表 以下是步骤 添加帖子:标题是“9/15” 检查页面列表(下图) 三,。我看不到最后的帖子(9/15的帖子) 我检查我的改装和邮递员,它工作良好(我可以看到所有数据9/15和其他3个数据。) 我找不到分页列表没有显示最后一个的原因。 这是代码 public class PostDataSource extends PageKeyedDataSource<Integer, Posts> { private static final int
public class PostDataSource extends PageKeyedDataSource<Integer, Posts> {
private static final int PAGE_SIZE = 10;
private static final int FIRST_PAGE = 1;
public ArrayList<Product> postsList = new ArrayList<>();
private long currentTimeStamp;
...
private Long getTimeStamp() {
Date currentTime = Calendar.getInstance().getTime();
long timestamp = currentTime.getTime() / 1000L;
return timestamp;
}
@Override
public void loadInitial(@NonNull LoadInitialParams<Integer> params, @NonNull LoadInitialCallback<Integer, Posts> callback) {
userToken = getTokenResult();
RetrofitInterface retrofitInterface = RetrofitClient.getRestMethods();
currentTimeStamp = getTimeStamp();
Call<PostsResponse> postsResponseCall =
retrofitInterface.searchProduct(SORT_TYPE,FIRST_PAGE,currentTimeStamp,PAGE_SIZE);
postsResponseCall.enqueue(new Callback<PostsResponse>() {
@Override
public void onResponse(Call<PostsResponse> call, Response<PostsResponse> response) {
try {
PostsResponse postsResponse = response.body();
if (response.isSuccessful()) {
List<Posts> responseItems = postsResponse.getResultData();
callback.onResult(responseItems, null, FIRST_PAGE + 1);
}
...
});
}
private Integer afterPageKey(LoadParams<Integer> params) {
Integer key;
if (params.key > 1) {
key = params.key + 1;
} else {
key = 0;
}
return key;
}
@Override
public void loadAfter(@NonNull LoadParams<Integer> params, @NonNull LoadCallback<Integer, Posts> callback) {
userToken = getTokenResult();
RetrofitInterface retrofitInterface = RetrofitClient.getRestMethods();
Call<PostsResponse> postsResponseCall =
retrofitInterface.searchProduct(SORT_TYPE, params.key,currentTimeStamp,PAGE_SIZE);
postsResponseCall.enqueue(new Callback<PostsResponse>() {
@Override
public void onResponse(Call<PostsResponse> call, Response<PostsResponse> response) {
try {
PostsResponse postsResponse = response.body();
if (response.isSuccessful()) {
List<Posts> responseItems = postsResponse.getResultData();
Integer key = afterPageKey(params);
Log.e("2 current page :"," "+key);
callback.onResult(responseItems, params.key +1);
}
...
});
}
}
公共类PostDataSource扩展了PageKeyedDataSource{
专用静态最终整版页面大小=10;
专用静态最终int第一页=1;
public ArrayList postsList=new ArrayList();
私有长时间戳;
...
私有长getTimeStamp(){
Date currentTime=Calendar.getInstance().getTime();
长时间戳=currentTime.getTime()/1000L;
返回时间戳;
}
@凌驾
public void loadInitial(@NonNull LoadInitialParams params,@NonNull LoadInitialCallback callback){
userToken=getTokenResult();
RefughtInterface-RefughtInterface=RefughtClient.getRestMethods();
currentTimeStamp=getTimeStamp();
呼叫postsResponseCall=
searchProduct(排序类型、第一页、当前时间戳、页面大小);
postsResponseCall.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
试一试{
PostsResponse PostsResponse=response.body();
if(response.issusccessful()){
List responseItems=postsResponse.getResultData();
onResult(responseItems,null,第一页+1);
}
...
});
}
私有整数afterPageKey(LoadParams-params){
整数键;
如果(参数键>1){
key=params.key+1;
}否则{
键=0;
}
返回键;
}
@凌驾
public void loadAfter(@NonNull LoadParams params,@NonNull LoadCallback callback){
userToken=getTokenResult();
RefughtInterface-RefughtInterface=RefughtClient.getRestMethods();
呼叫postsResponseCall=
搜索产品(排序类型、参数键、当前时间戳、页面大小);
postsResponseCall.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
试一试{
PostsResponse PostsResponse=response.body();
if(response.issusccessful()){
List responseItems=postsResponse.getResultData();
整数键=后页键(参数);
Log.e(“2当前页面:”,“+键);
onResult(responseItems,params.key+1);
}
...
});
}
}
public class PostDataSource extends PageKeyedDataSource<Integer, Posts> {
private static final int PAGE_SIZE = 10;
private static final int FIRST_PAGE = 1;
public ArrayList<Product> postsList = new ArrayList<>();
private long currentTimeStamp;
...
private Long getTimeStamp() {
Date currentTime = Calendar.getInstance().getTime();
long timestamp = currentTime.getTime() / 1000L;
return timestamp;
}
@Override
public void loadInitial(@NonNull LoadInitialParams<Integer> params, @NonNull LoadInitialCallback<Integer, Posts> callback) {
userToken = getTokenResult();
RetrofitInterface retrofitInterface = RetrofitClient.getRestMethods();
currentTimeStamp = getTimeStamp();
Call<PostsResponse> postsResponseCall =
retrofitInterface.searchProduct(SORT_TYPE,FIRST_PAGE,currentTimeStamp,PAGE_SIZE);
postsResponseCall.enqueue(new Callback<PostsResponse>() {
@Override
public void onResponse(Call<PostsResponse> call, Response<PostsResponse> response) {
try {
PostsResponse postsResponse = response.body();
if (response.isSuccessful()) {
List<Posts> responseItems = postsResponse.getResultData();
callback.onResult(responseItems, null, FIRST_PAGE + 1);
}
...
});
}
private Integer afterPageKey(LoadParams<Integer> params) {
Integer key;
if (params.key > 1) {
key = params.key + 1;
} else {
key = 0;
}
return key;
}
@Override
public void loadAfter(@NonNull LoadParams<Integer> params, @NonNull LoadCallback<Integer, Posts> callback) {
userToken = getTokenResult();
RetrofitInterface retrofitInterface = RetrofitClient.getRestMethods();
Call<PostsResponse> postsResponseCall =
retrofitInterface.searchProduct(SORT_TYPE, params.key,currentTimeStamp,PAGE_SIZE);
postsResponseCall.enqueue(new Callback<PostsResponse>() {
@Override
public void onResponse(Call<PostsResponse> call, Response<PostsResponse> response) {
try {
PostsResponse postsResponse = response.body();
if (response.isSuccessful()) {
List<Posts> responseItems = postsResponse.getResultData();
Integer key = afterPageKey(params);
Log.e("2 current page :"," "+key);
callback.onResult(responseItems, params.key +1);
}
...
});
}
}