在Parse android中使用setskip方法和ParseQueryAdapter进行分页
我想使用setskip方法实现分页。我正在使用循环视图,希望在用户滚动时加载更多项目。我不想使用ParseUeryAdapter,所以是否仍然存在这样的情况,以便我可以使用setskip方法执行此操作在Parse android中使用setskip方法和ParseQueryAdapter进行分页,android,android-recyclerview,parse-platform,android-parser,parse-android-sdk,Android,Android Recyclerview,Parse Platform,Android Parser,Parse Android Sdk,我想使用setskip方法实现分页。我正在使用循环视图,希望在用户滚动时加载更多项目。我不想使用ParseUeryAdapter,所以是否仍然存在这样的情况,以便我可以使用setskip方法执行此操作 public class MainActivity extends AppCompatActivity { VideoAdapter videoAdapter; private int previousTotal = 0; private boolean loading = true; priva
public class MainActivity extends AppCompatActivity {
VideoAdapter videoAdapter;
private int previousTotal = 0;
private boolean loading = true;
private int visibleThreshold = 5;
int firstVisibleItem, visibleItemCount, totalItemCount;
int limit=0;
boolean loadmore=false;
ArrayList<Video> testParseModels=new ArrayList<>();
RecyclerView recyclerView;
LinearLayoutManager linearLayoutManager;
ParseQuery<ParseObject> parseQuery;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView=(RecyclerView)findViewById(R.id.recyclerview);
Parse.initialize(new
dataParse();
/*parseQuery.setLimit(recyclerView.getChildCount()+5);
if(recyclerView.getChildCount()>5){
parseQuery.setSkip(5);
}*/
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if(loadmore==true){
parseQuery.setSkip(limit);
parseQuery.setLimit(5);
}else{
parseQuery.setLimit(5);
}
dataParse();
}
});
videoAdapter = new VideoAdapter(testParseModels, MainActivity.this);
linearLayoutManager = new LinearLayoutManager(MainActivity.this, LinearLayoutManager.VERTICAL, false);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(linearLayoutManager);
recyclerView.setAdapter(videoAdapter);
/*if(loadmore==true)
{
parseQuery.setSkip(limit);
parseQuery.setLimit(5);
}
else
{
parseQuery.setLimit(5);
}*/
}
public void dataParse(){
parseQuery=ParseQuery.getQuery("Video");
parseQuery.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> objects, ParseException e) {
/* limit = limit+ objects.size();
if(objects.size()==0)
{
loadmore = false;
}
else
{
loadmore = true;
}*/
if (e == null) {
for (int i = 0; i < objects.size(); i++) {
Video video = new Video();
video.setCityname(objects.get(i).getString("cityname"));
video.setName(objects.get(i).getString("name"));
video.setStorageId(objects.get(i).getString("storageId"));
video.setS3link(objects.get(i).getString("s3link"));
//Log.d("s3link", objects.get(i).getString("cityname"));
testParseModels.add(video);
}
} else {
Toast.makeText(getApplicationContext(), "some error", Toast.LENGTH_LONG).show();
}
// videoAdapter.notifyDataSetChanged();
}
});
}
}
public类MainActivity扩展了AppCompatActivity{
视频适配器;
private int previousTotal=0;
私有布尔加载=真;
私有int visibleThreshold=5;
int firstVisibleItem、visibleItemCount、totalItemCount;
整数极限=0;
布尔loadmore=false;
ArrayList testParseModels=新的ArrayList();
回收视图回收视图;
直线布局经理直线布局经理;
解析查询解析查询;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView=(recyclerView)findViewById(R.id.recyclerView);
初始化(新的
dataParse();
/*setLimit(recyclerView.getChildCount()+5);
if(recyclerView.getChildCount()>5){
parseQuery.setSkip(5);
}*/
recyclerView.addOnScrollListener(新的recyclerView.OnScrollListener(){
@凌驾
CrollStateChanged上的公共无效(RecyclerView RecyclerView,int newState){
super.onScrollStateChanged(recyclerView、newState);
}
@凌驾
已填空的公共空间(RecyclerView RecyclerView、int dx、int dy){
super.onScrolled(recyclerView、dx、dy);
if(loadmore==true){
parseQuery.setSkip(限制);
parseQuery.setLimit(5);
}否则{
parseQuery.setLimit(5);
}
dataParse();
}
});
videoAdapter=新的videoAdapter(testParseModels,MainActivity.this);
linearLayoutManager=新的linearLayoutManager(MainActivity.this,linearLayoutManager.VERTICAL,false);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(linearLayoutManager);
recyclerView.setAdapter(视频适配器);
/*if(loadmore==true)
{
parseQuery.setSkip(限制);
parseQuery.setLimit(5);
}
其他的
{
parseQuery.setLimit(5);
}*/
}
公共void dataParse(){
parseQuery=parseQuery.getQuery(“视频”);
findInBackground(新的FindCallback(){
@凌驾
公共void done(列出对象,parsee异常){
/*limit=limit+objects.size();
if(objects.size()==0)
{
loadmore=false;
}
其他的
{
loadmore=true;
}*/
如果(e==null){
对于(int i=0;i
有人能帮我解决这个可能重复的问题吗?如果你想要一个完整的实现,这篇文章可能会帮助你: