这是我的试用版请告诉我如何在滚动中加载数据
我正在使用onScrollStateChanged
,但它不适用于我。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lvls = (ListView) findViewById(R.id.listview);
lvls.setOnScrollListener(new EndlessScrollListener());
}
class EndlessScrollListener implements AbsListView.OnScrollListener {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
GallaryLoad();
}
public class CustomAdapter extends BaseAdapter {
@Override
public int getCount() {
// TODO Auto-generated method stub
return array_bean.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(final int position, View convertView,
ViewGroup parent) {
if (convertView == null) {
convertView = getLayoutInflater().inflate(R.layout.activity_reader, null);
}
ImageView imageView = (ImageView) convertView.findViewById(R.id.reader_thumbnail);
TextView textView = (TextView) convertView.findViewById(R.id.reader_title);
TextView reader_categories = (TextView) convertView.findViewById(R.id.reader_categories);
Picasso
.with(MainActivity.this)
.load("http://it-tips.org/wp-content/uploads/2016/10/primefactors.png")
.transform(new RoundedCornersTransformation(15, 1,
RoundedCornersTransformation.CornerType.TOP))
.placeholder(R.drawable.progress_animation)
.into(imageView);
textView.setText(array_bean.get(position).getTitle());
reader_categories.setText(array_bean.get(position).getCategories());
return convertView;
}
}
private void GallaryLoad() {
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray jsonObject = response.getJSONArray("posts");
for (int i = 0; i < jsonObject.length(); i++) {
JSONObject object1 = jsonObject.getJSONObject(i);
PostItem info = new PostItem();
info.setTitle(object1.getString("title"));
info.setCategories(object1.getString("slug"));
info.setImgUrl(object1.getString("url"));
array_bean.add(info);
lvls.setAdapter(new CustomAdapter());
progressBar.setVisibility(View.GONE);
}
} catch (JSONException e) {
Toast.makeText(getApplicationContext(), "Not available", Toast.LENGTH_SHORT).show();
e.printStackTrace();
progressBar.setVisibility(View.GONE);
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
progressBar.setVisibility(View.GONE);
Toast.makeText(getApplicationContext(), "something went wrong", Toast.LENGTH_LONG).show();
}
});
Volley.newRequestQueue(this).add(jsonObjectRequest);
}
我是新的Android开发人员,但无法理解如何放入我的列表视图生病看到这么多教程但我不能理解所以请帮我用滚动加载数据
谢谢
答案 0 :(得分:0)
list.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
if (list.getLastVisiblePosition() == -1) {
} else if (list.getLastVisiblePosition() == (skip - 1) && !isLoading) {
isLoading = true;
getParticipant();
}
}
});
在响应回调中更新跳过(没有加载数据)和isLoading(使其为false)。您可以将此跳过传递给您的网络电话,以便他们提供此号码旁边的数据。
list.getLastVisiblePosition() means nothing is visible.
答案 1 :(得分:0)
RecyclerView
。bindViewHolder(VH holder, int position)
中确定您要重新加载数据的最后位置getItemCount()
notifyDataSetChanged()
那里有很多关于RecyclerView的教程。 一个好的开始是 Creating list and Cards