//这是主类MainActivity,大部分操作在这里面完成,还有另一类MyApplication也很重要,有最重要 的ApiKey在里面

package com.example.day020c;


import org.json.JSONException;
import org.json.JSONObject;
import com.baidu.apistore.sdk.ApiCallBack;
import com.baidu.apistore.sdk.ApiStoreSDK;
import com.baidu.apistore.sdk.network.Parameters;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;


public class MainActivity extends Activity{
TextView mTextView;
EditText mEditText;
Button test;
Context context;
String cityname;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
intUI();
}


private void intUI() {
mTextView = (TextView) findViewById(R.id.mainTextView);
test = (Button) findViewById(R.id.mainButton);
test.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
mEditText=(EditText) findViewById(R.id.mainEditText);
cityname=mEditText.getText().toString().trim();
mTextView.setText("");
apiTest();
}
});
}


@SuppressWarnings("unchecked")
private void apiTest() {
Parameters para = new Parameters();
para.put("citypinyin", cityname);
ApiStoreSDK.execute("http://apis.baidu.com/apistore/weatherservice/weather"
//ApiStoreSDK.execute("http://apis.baidu.com/3023/weather/weather"
,ApiStoreSDK.GET,para,new ApiCallBack(){
@Override
public void onSuccess(int status, String responseString)
{
Log.i("sdkdemo", "onSuccess");
weathershow(responseString);
//mTextView.setText(responseString);
System.out.println(responseString);
}

@Override
public void onComplete() {
Log.i("sdkdemo", "onComplete");
}

@Override
public void onError(int status, String responseString, Exception e) {
Log.i("sdkdemo", "onError, status: " + status);
Log.i("sdkdemo", "errMsg: " + (e == null ? "" : e.getMessage()));
mTextView.setText(getStackTrace(e));
}
});
}

String getStackTrace(Throwable e)
{
if (e == null)
{
return "";
}
StringBuilder str = new StringBuilder();
str.append(e.getMessage()).append("\n");
for (int i = 0; i < e.getStackTrace().length; i++)
{
str.append(e.getStackTrace()[i]).append("\n");
}
System.out.println(str.toString());
return str.toString();
}

private void weathershow(String json){
try {
JSONObject retData = new JSONObject(json).getJSONObject("retData");
String postCode = retData.getString("postCode");
String cityCode = retData.getString("citycode");
String city = retData.getString("city");
String pinyin = retData.getString("pinyin");
String date = retData.getString("date");
String time = retData.getString("time");
String longitude = retData.getString("longitude");
String latitude = retData.getString("latitude");
String weather = retData.getString("weather");
String temp = retData.getString("temp");
String l_tmp = retData.getString("l_tmp");
String h_tmp = retData.getString("h_tmp");
String WD = retData.getString("WD");
String WS = retData.getString("WS");
String sunrise = retData.getString("sunrise");
String sunset = retData.getString("sunset");
mTextView.setText("\n城市:"+city+"\n拼音:"+pinyin+"\n城市编码:"+cityCode+"\n日期:"+date+"\n更新时间:"+time+"\n邮编:"+postCode
+"\n经度:"+longitude+"\n纬度:"+latitude+"\n天气:"+weather+"\n温度:"+temp+"\n最低温度:"+l_tmp+"\n最高温度:"+h_tmp+"\n风向:"+WD
+"\n风力:"+WS+"\n日出时间:"+sunrise+"\n日落时间:"+sunset);
} catch (JSONException e) {
System.out.println("Json parse error");
e.printStackTrace();
}
}
}


//MyApplication,里面的ApiKey必须每个开发者自己去ApiStore申请一个唯一的ApiKey才可以,

package com.example.day020c;

import com.baidu.apistore.sdk.ApiStoreSDK;
import android.app.Application;

public class MyApplication extends Application {
public void onCreate() {
// TODO 您的其他初始化流程
ApiStoreSDK.init(this, "你自己的ApiKey");//一定要记得写自己的ApiKey
super.onCreate();
}
}




更多相关文章

  1. ffmpeg从视频中提取帧时间戳
  2. js实现把整数秒转化为"hh:mm:ss"的时间格式.
  3. Java获得文件的创建时间(精确到秒)
  4. Java中累计时间的计算(以小时为最终结果)
  5. 如果服务器位于不同的位置,如何保存客户端机器时间
  6. java时间转换,long , string和date和时间戳的互转
  7. Java时区转换与时间格式

随机推荐

  1. 这是快/最好?选择*或选择column1、colum2
  2. SQL0973N在 "" 堆中没有足够的存储器
  3. mysql优化---in型子查询,exists子查询,from
  4. MySql常用命令总结
  5. MYSQL 多表联合查询并分组的问题?
  6. mybatis中mysql多条件查询
  7. 怎样在办公网络通过跳板机获取生产环境的
  8. PLSQL乱码解决方案
  9. mysql每天凌晨0点准时启动taskeng.exe如
  10. 50个查询系列-第9个查询:查询所有课程成绩