android使用asynchttp网络请求服务器返回json数据并显示在手机

一.将android-async-http.jar包导入到android项目的lib下



二.手机客户端代码

1.MainActivity.java

public class MainActivity extends Activity {


ListView listview;

TextView tvName,tvPhone;

List<UserName> userList;

userAdapter userAdapter;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       initView();
       method2();
       
   }


   private void setDate() {
// TODO Auto-generated method stub
    userAdapter=new userAdapter(userList, this);
    listview.setAdapter(userAdapter);
}


private void initView() {
// TODO Auto-generated method stub
listview=(ListView) findViewById(R.id.ListView);
    tvName=(TextView) findViewById(R.id.tvName);
    tvPhone=(TextView) findViewById(R.id.tvPhone);
}


   
public void method2() {
userList=new ArrayList<UserName>();
       String urlString = "http://192.168.1.4/PocketCity2015/Municipal_getUserList.action";
       AsyncHttpClient client =new AsyncHttpClient();
       RequestParams params = new RequestParams();
       params.put("name", "张飞");//传递参数
       params.put("phone", "134564564");//传递参数
       client.get(urlString, params,new JsonHttpResponseHandler() {


          @Override
              public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
                  // If the response is JSONObject instead of expected JSONArray
 
  try {
JSONArray arr = response.getJSONArray("usersList");
for (int i=0; i< arr.length(); i++) {
JSONObject obj = arr.getJSONObject(i);
UserName user=new UserName();
String name=obj.getString("name");
String phone=obj.getString("phone");
user.setName(name);
user.setPhone(phone);
userList.add(user);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
  setDate();//封装数据到适配器里面
              }
              
              @Override
              public void onSuccess(int statusCode, Header[] headers, JSONArray timeline) {
                  // Pull out the first event on the public timeline
  Toast.makeText(getApplicationContext(), "登录成功2", Toast.LENGTH_SHORT).show();


              }
        
          
       });
   }




  class userAdapter extends BaseAdapter{
 List<UserName> usersList;
 MainActivity context;
 
 public userAdapter(List<UserName> userList,MainActivity context){
 super();
 this.usersList=userList;
 this.context=context;
 }
@Override
public int getCount() {
// TODO Auto-generated method stub
return usersList.size();
}


@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return usersList.get(position);
}


@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}


@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder=null;
if(convertView==null){
convertView=View.inflate(context, R.layout.item, null);
holder=new ViewHolder();
holder.tvName=(TextView) convertView.findViewById(R.id.tvName);
holder.tvPhone=(TextView) convertView.findViewById(R.id.tvPhone);
convertView.setTag(holder);
}else{
holder=(ViewHolder) convertView.getTag();
}
UserName user=usersList.get(position);
holder.tvName.setText(user.getName());
holder.tvPhone.setText(user.getPhone());
return convertView;

}
 
class ViewHolder{
TextView tvName;
TextView tvPhone;
}

  }

2.UserName

public class UserName {


private String name;

private String phone;


public String getName() {
return name;
}


public void setName(String name) {
this.name = name;
}


public String getPhone() {
return phone;
}


public void setPhone(String phone) {
this.phone = phone;
}


}

三.服务端模拟代码,最终封装成json对象

public void getUserList() throws IOException{
String key=request.getParameter("key");  //获取从手机端传过来的值
Map<String,Object> map = new HashMap<String, Object>();
List<UserName> userList=new ArrayList();
UserName u=new UserName();
u.setName("张飞");
u.setPhone("1356667890");
userList.add(u);
UserName u11=new UserName();
u11.setName("赵云");
u11.setPhone("1356667890");
userList.add(u11);
UserName u2=new UserName();
u2.setName("诸葛亮");
u2.setPhone("1356667890");
userList.add(u2);
UserName u3=new UserName();
u3.setName("刘备");
u3.setPhone("1356667890");
userList.add(u3);
UserName u4=new UserName();
u4.setName("关羽");
u4.setPhone("1356667890");
userList.add(u4);
map.put("success", true);
map.put("msg", "查询成功!");
map.put("usersList", userList);
this.response.setCharacterEncoding("utf-8");
 PrintWriter pw=this.response.getWriter();
 JSONObject returnObj=JSONObject.fromObject(map);
 pw.write(returnObj.toString());
 pw.flush();
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值