Android 在从json解析数据时,如何在列表视图中使用分页?
在从json解析数据时,如何在列表视图中使用分页? 我使用json从url中删除数据,但现在我想在按钮上进行分页,单击url页码。更改为2,数据再次删除。我如何才能做到这一点?我的json工作代码如下所示-Android 在从json解析数据时,如何在列表视图中使用分页?,android,Android,在从json解析数据时,如何在列表视图中使用分页? 我使用json从url中删除数据,但现在我想在按钮上进行分页,单击url页码。更改为2,数据再次删除。我如何才能做到这一点?我的json工作代码如下所示- public class FirstFragment extends Fragment { public AfricaFragment(){} private static final String TAG = FirstFragment.class.getSimpleName(); /
public class FirstFragment extends Fragment {
public AfricaFragment(){}
private static final String TAG = FirstFragment.class.getSimpleName();
// Movies json url
private static final String url = "http://urlling&page=1";
private ProgressDialog pDialog;
private List<Movie> movieList = new ArrayList<Movie>();
private ListView listView;
private CustomListAdapter adapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View rootView = inflater.inflate(R.layout.activity_main, container, false);
listView = (ListView) rootView.findViewById(R.id.list);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int Position,
long offset) {
// TODO Auto-generated method stub
Movie item = (Movie) adapter.getItem(Position);
Intent intent = new Intent(rootView.getContext(), SingleArticle.class);
single.title = item.getTitle();
single.author = item.getAuthor();
startActivity(intent);
}
});
//pDialog = new ProgressDialog(this);
// Showing progress dialog before making http request
return rootView;
}
@Override
public void onStart(){
super.onStart();
// calling adapter changes here, just
// to avoid getactivity()null
//adapter = new CustomListAdapter(this, movieList);
pDialog = new ProgressDialog(getActivity());
pDialog.setMessage("Loading...");
pDialog.show();
// changing action bar color
//getActivity().getActionBar().setBackground(
//new ColorDrawable(Color.parseColor("#1b1b1b")));
// Creating volley request obj
JsonArrayRequest movieReq = new JsonArrayRequest(url,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Log.d(TAG, response.toString());
hidePDialog();
// Parsing json
for (int i = 0; i < response.length(); i++) {
try {
JSONObject obj = response.getJSONObject(i);
Movie movie = new Movie();
movie.setTitle(obj.getString("title"));
movie.setAuthor(obj.getString("author"));
// adding movie to movies array
movieList.add(movie);
adapter = new CustomListAdapter(getActivity(), movieList);
adapter.notifyDataSetChanged();
listView.setAdapter(adapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
},new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
new AlertDialog.Builder(getActivity())
.setTitle("No Connectivity ")
.setMessage("Please chechk your internet connectivity!")
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// continue with delete
}
})
//.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
//public void onClick(DialogInterface dialog, int which) {
// do nothing
//}
//})
.setIcon(android.R.drawable.ic_dialog_alert)
.show();
hidePDialog();
}
});
AppController.getInstance().addToRequestQueue(movieReq);
listView.setAdapter(adapter);
}
private View getActionBar() {
// TODO Auto-generated method stub
return null;
}
@Override
public void onDestroy() {
super.onDestroy();
hidePDialog();
}
private void hidePDialog() {
if (pDialog != null) {
pDialog.dismiss();
pDialog = null;
}
}
}
public类FirstFragment扩展了Fragment{
公共非洲碎片({}
私有静态最终字符串标记=FirstFragment.class.getSimpleName();
//电影json url
私有静态最终字符串url=”http://urlling&page=1";
私人对话;
private List movieList=new ArrayList();
私有列表视图列表视图;
专用自定义列表适配器;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
最终视图根视图=充气机。充气(R.layout.activity_main,容器,假);
listView=(listView)rootView.findViewById(R.id.list);
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView AdapterView、View视图、int位置、,
长偏移量){
//TODO自动生成的方法存根
电影项目=(电影)适配器.getItem(位置);
Intent Intent=new Intent(rootView.getContext(),SingleArticle.class);
single.title=item.getTitle();
single.author=item.getAuthor();
星触觉(意向);
}
});
//pDialog=新建进度对话框(此对话框);
//在发出http请求之前显示进度对话框
返回rootView;
}
@凌驾
public void onStart(){
super.onStart();
//在这里调用适配器更改,只需
//要避免getactivity()为null
//adapter=新的CustomListAdapter(此,movieList);
pDialog=newprogressdialog(getActivity());
设置消息(“加载…”);
pDialog.show();
//更改操作栏颜色
//getActivity().getActionBar().setBackground(
//新的可着色(Color.parseColor(#1b1b1b”);
//创建截击请求对象
JsonArrayRequest movieReq=新的JsonArrayRequest(url,
新的Response.Listener(){
@凌驾
公共void onResponse(JSONArray响应){
Log.d(TAG,response.toString());
hidePDialog();
//解析json
对于(int i=0;i
您可以在列表视图的滚动端调用另一个请求。Ref:在片段活动中解析数据时,如何在片段中实现这一点?在片段中创建一个方法parseandSetData(),并调用fragmentInstance.parseandSetData(resultList);将其附加到现有列表中,并为适配器更改nottifydatasetchanged