京東商城顯示有貨無貨信息
前幾天要和京東做接口,其中用到客戶選擇完地址后,根據選擇地址來判斷是否有
貨,以下是截圖
代碼塊
用到的技術:
activity間值的傳遞listview列表刷新異步請求
package com.cric.intelem.activity;
import java.util.ArrayList;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import com.cric.intelem.ApplicationContext;
import com.cric.intelem.MyHttpClient;
import com.cric.intelem.R;
import com.cric.intelem.adapter.AddressAdapter;
import com.cric.intelem.bean.ExGroup;
import com.cric.intelem.bean.IntelemHost;
import com.cric.intelem.bean.User;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.http.RequestParams;
public class SelectAddressActivity extends Activity {private int page =
1;
private int ProvinceID=
0;
private String ProvinceName=
"";
private int CityID=
0;
private String CityName=
"";
private int CountyID=
0;
private String CountyName=
"";
private Context context;
private boolean lock =
false;ListView listview;ArrayList<ExGroup> list =
new ArrayList<ExGroup>();ApplicationContext app;AddressAdapter adapter;
@Overrideprotected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);context =
this;app = (ApplicationContext) getApplication();setContentView(R.layout.select_address_layout);((TextView) findViewById(R.id.layout_header_title_id)).setText(
"配送至");listview = (ListView) findViewById(R.id.layout_select_address_id);adapter =
new AddressAdapter(context, list);list = initlist(page);listview.setAdapter(adapter);adapter.notifyDataSetChanged();listview.setOnItemClickListener(oilistener);((ImageView)findViewById(R.id.layout_header_btn_right_image_id)).setVisibility(View.INVISIBLE);((ImageView)findViewById(R.id.layout_header_btn_left_image_id)).setImageResource(R.drawable.btn_back);LinearLayout layoutleft = (LinearLayout) findViewById(R.id.layout_header_btn_left_id);layoutleft.setOnClickListener(
new OnClickListener() {
@Overridepublic void onClick(View v) {finish();}});}
/*** 獲取省份列表* @param page* @return*/private ArrayList<ExGroup>
initlist(
int page){
if(page>
1){list.clear();}String requestURL = IntelemHost.JDProvince;String UserID = app.getUid();User user = app.getLoginInfo();String no = user.getCookie();RequestParams params =
new RequestParams();params.put(
"UserID", UserID);params.put(
"CaptchaNo", no);MyHttpClient.get(requestURL, params,
new AsyncHttpResponseHandler(){
@Overridepublic void onSuccess(String content) {JSONArray array;
try {JSONObject jsonObject =
new JSONObject(content);array = jsonObject.getJSONArray(
"getprovince");
for(
int i=
0;i<array.length();i++){JSONObject temp = (JSONObject) array.get(i); ExGroup gz =
new ExGroup();String provincename = temp.getString(
"ProvinceName");String provinceid = temp.getString(
"ProvinceID");
int id = Integer.parseInt(provinceid);gz.setName(provincename);gz.setId(id);gz.setHasNew(
false);list.add(gz);}
if(
null!=adapter){adapter.notifyDataSetChanged();}}
catch (JSONException e) {e.printStackTrace();}}
@Overridepublic void onStart() {}
@Overridepublic void onFailure(Throwable error, String content) {}});
return list;}
/*** 獲取城市列表* @param page* @return*/private ArrayList<ExGroup>
initcitylist(
int page,
int pid){
if(page>
1){list.clear();}String requestURL = IntelemHost.JDCity;String UserID = app.getUid();User user = app.getLoginInfo();String no = user.getCookie();RequestParams params =
new RequestParams();params.put(
"UserID", UserID);params.put(
"CaptchaNo", no);params.put(
"Province", pid+
"");MyHttpClient.get(requestURL, params,
new AsyncHttpResponseHandler(){
@Overridepublic void onSuccess(String content) {lock =
false;JSONArray array;
try {JSONObject jsonObject =
new JSONObject(content);array = jsonObject.getJSONArray(
"getcity");
for(
int i=
0;i<array.length();i++){JSONObject temp = (JSONObject) array.get(i); ExGroup gz =
new ExGroup();String provincename = temp.getString(
"CityName");String provinceid = temp.getString(
"CityID");
int id = Integer.parseInt(provinceid);gz.setName(provincename);gz.setId(id);gz.setHasNew(
false);list.add(gz);}
if(
null!=adapter){adapter.notifyDataSetChanged();}}
catch (JSONException e) {e.printStackTrace();}}
@Overridepublic void onStart() {lock =
true;}
@Overridepublic void onFailure(Throwable error, String content) {}});
return list;}
/*** 獲取區縣列表* @param page* @return*/private ArrayList<ExGroup>
initcountylist(
int page,
int cid){
if(page>
1){list.clear();}String requestURL = IntelemHost.JDCounty;String UserID = app.getUid();User user = app.getLoginInfo();String no = user.getCookie();RequestParams params =
new RequestParams();params.put(
"UserID", UserID);params.put(
"CaptchaNo", no);params.put(
"City", cid+
"");MyHttpClient.get(requestURL, params,
new AsyncHttpResponseHandler(){
@Overridepublic void onSuccess(String content) {lock =
false;JSONArray array;
try {JSONObject jsonObject =
new JSONObject(content);array = jsonObject.getJSONArray(
"getcounty");
for(
int i=
0;i<array.length();i++){JSONObject temp = (JSONObject) array.get(i); ExGroup gz =
new ExGroup();String provincename = temp.getString(
"CountyName");String provinceid = temp.getString(
"CountyID");
int id = Integer.parseInt(provinceid);gz.setName(provincename);gz.setId(id);gz.setHasNew(
false);list.add(gz);}
if(
null!=adapter){adapter.notifyDataSetChanged();}}
catch (JSONException e) {e.printStackTrace();}}
@Overridepublic void onStart() {lock =
true;}
@Overridepublic void onFailure(Throwable error, String content) {}});
return list;}
/*** 這里是點擊條目是促發的事件* 第一次點擊選擇省份* 第二次點擊選擇城市* 第三次點擊選擇區縣* 每次都獲取列表前都清空數據* 第三次點擊后將獲取的值返回給前一個acivity并關閉頁面*/public OnItemClickListener oilistener =
new OnItemClickListener() {
@Overridepublic void onItemClick(AdapterView<?> arg0, View view,
int arg2,
long id) {
if((list.size()==
0)||lock){
return;}
else{page++;}
int realPosition=(
int)id;ExGroup eg = list.get(realPosition);
int pid = eg.getId();String pname = eg.getName();
if(page==
2){ProvinceID =pid;ProvinceName = pname;initcitylist(page,pid);}
else if(page==
3){CityID= pid;CityName= pname;initcountylist(page, pid);}
else if(page==
4){CountyID = pid;CountyName = pname;Intent intent =
new Intent();intent.putExtra(
"ProvinceID", ProvinceID);intent.putExtra(
"ProvinceName", ProvinceName);intent.putExtra(
"CityID", CityID);intent.putExtra(
"CityName", CityName);intent.putExtra(
"CountyID", CountyID);intent.putExtra(
"CountyName", CountyName);setResult(Activity.RESULT_OK, intent);finish();}}};}
這里是布局文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="300dp"<!--這里寬度為300dp可以讓頁面顯示半邊,居右對其-->android:layout_height="wrap_content"android:layout_gravity="right"android:orientation="vertical" >
<include layout="@layout/layout_header" /><LinearLayout
android:id="@+id/dialog_layout"android:layout_below="@id/layout_header_id"android:layout_width="fill_parent"android:layout_height="wrap_content"android:background="#ffeeeef3"android:paddingBottom="5.0dip" android:gravity="center_horizontal"android:orientation="vertical" > <ListView android:id="@+id/layout_select_address_id"android:layout_width="300dp"android:layout_height="wrap_content"android:cacheColorHint="@android:color/transparent"android:scrollbars="none"android:groupIndicator="@null"android:listSelector="@android:color/darker_gray"android:divider="@drawable/layout_pop_addresslistview_divider"/></LinearLayout></RelativeLayout>
總結
以上是生活随笔為你收集整理的京东商城选择地址信息的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。