package com.example.myapplication;
import android.app.Activity;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException;
import java.io.InputStream;
public class SearchActivity extends Activity {
private EditText cityNameET;
private static final String URL="http://t.weather.sojson.com/api/weather/city/";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.search, menu);
return true;
}
/**
* 根据输入查询相关城市天气
* @param view
*/
public void getData(View view){
MyTask myTask = new MyTask();
//根据城市名称获取城市对应的ID
cityNameET= findViewById(R.id.search_cityname_et);
String cityName=cityNameET.getText().toString();
String cityCode=getCityCode(cityName);
String reqUrl=URL+cityCode;
myTask.execute(reqUrl);
}
/**
* 根据输入的城市名称获取城市对应的ID
* @param cityName
* @return
*/
private String getCityCode(String cityName) {
//IO流读取city.json文件
String cityCode="";
try {
// 从assets目录中读取城市ID信息
InputStream inputStream = getResources().getAssets().open("city.json");
byte [] buffer= new byte[inputStream.available()];
inputStream.read(buffer);
String cityStr = new String(buffer);
//将字符串转换为json数组
JSONArray jsonArray = new JSONArray(cityStr);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject= jsonArray.getJSONObject(i);
if (jsonObject.getString("city_name").equals(cityName)) {
cityCode=jsonObject.getString("city_code");
break;
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return cityCode;
}
public class MyTask extends AsyncTask<String,Integer,String> {
//执行网络请求之前的方法
@Override
protected void onPreExecute() {
super.onPreExecute();
}
//执行网络请求
@Override
protected String doInBackground(String... strings) {
String returnStr="";
//根据传来的url进行解析
HttpClient httpClient = new DefaultHttpClient();
HttpGet get = new HttpGet(strings[0]);
try{
HttpResponse response=httpClient.execute(get);
// 访问成功
if(response.getStatusLine().getStatusCode()==200){
HttpEntity entity = response.getEntity();
returnStr = EntityUtils.toString(entity);
}
}catch (ClientProtocolException e){
e.printStackTrace();
}catch (IOException e){
e.printStackTrace();
}
return returnStr;
}
//网络请求之后执行
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
//跳转到 MainActivity ,并传递数据
Intent intent = new Intent(SearchActivity.this,MainActivity.class);
intent.putExtra("data",s);
startActivity(intent);
//结束当前activity
finish();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Android高仿墨迹天气大作业
共133个文件
jpg:55个
xml:30个
png:22个
需积分: 47 60 下载量 5 浏览量
2019-07-01
09:20:28
上传
评论 25
收藏 1.59MB RAR 举报
温馨提示
Android实现高仿墨迹天气页面,实现了全国城市搜索功能,还有下面的四个按钮,都可以实现点击跳转,完成了Android课的课程设计大作业
资源推荐
资源详情
资源评论
收起资源包目录
Android高仿墨迹天气大作业 (133个子文件)
gradlew.bat 2KB
last-build.bin 1B
.gitignore 216B
.gitignore 8B
build.gradle 968B
build.gradle 684B
settings.gradle 16B
gradlew 5KB
MyApplication.iml 606B
gradle-wrapper.jar 53KB
SearchActivity.java 4KB
MainActivity.java 3KB
VideoActivity.java 1KB
LiveActivity.java 958B
PersonageActivity.java 862B
ExampleInstrumentedTest.java 748B
ExampleUnitTest.java 402B
search_bg.jpg 132KB
live_img_1.jpg 76KB
main_bg.jpg 40KB
live_img_2_1.jpg 39KB
brage.jpg 35KB
car.jpg 34KB
yuan.jpg 30KB
p_bg_top.jpg 14KB
p_img_2_1.jpg 10KB
p_img.jpg 10KB
live_img_2_3.jpg 7KB
live_img.jpg 5KB
search_bg.jpg 4KB
p_head_logo.jpg 4KB
c.jpg 4KB
d.jpg 4KB
h.jpg 4KB
b.jpg 4KB
e.jpg 4KB
f.jpg 4KB
g.jpg 4KB
p_bg_1.jpg 3KB
a.jpg 3KB
p_logo_1_1.jpg 3KB
live_logo_2_2.jpg 2KB
live_logo_2_3.jpg 2KB
live_logo_2_5.jpg 2KB
p_logo_1_4.jpg 2KB
peroson_logo.jpg 2KB
p_logo_3_5.jpg 2KB
weather_active_logo.jpg 2KB
live_active_logo.jpg 2KB
p_logo_1_2.jpg 2KB
p_logo_4_2.jpg 2KB
p_logo_4_8.jpg 2KB
video_active_logo.jpg 2KB
p_logo_3_8.jpg 2KB
p_logo_3_2.jpg 2KB
p_logo_3_6.jpg 2KB
p_logo_3_3.jpg 2KB
live_logo_1_3.jpg 2KB
p_logo_3_7.jpg 2KB
p_logo_4_3.jpg 2KB
p_logo_3_1.jpg 2KB
p_logo_4_1.jpg 2KB
p_logo_4_7.jpg 2KB
p_logo_4_4.jpg 1KB
weather_logo.jpg 1KB
video_logo.jpg 1KB
p_logo_3_4.jpg 1KB
live_logo.jpg 1KB
p_logo_4_6.jpg 1KB
live_logo_1_1.jpg 1KB
p_logo_4_5.jpg 1KB
live_logo_1_2.jpg 1KB
city.json 293KB
fileHashes.lock 17B
mv.mp4 0B
girl.png 911KB
sun.png 29KB
timg.png 26KB
ic_launcher_round.png 15KB
ic_launcher_round.png 10KB
ic_launcher.png 9KB
ic_launcher_round.png 7KB
ic_launcher.png 6KB
ic_launcher_round.png 5KB
ic_launcher.png 5KB
ic_launcher.png 4KB
ic_launcher.png 3KB
ic_launcher_round.png 3KB
ic_launcher.png 3KB
tab2.png 2KB
ic_launcher.png 2KB
search.png 2KB
tab4.png 2KB
tab1.png 1KB
ic_launcher.png 1KB
ic_launcher.png 1KB
tab3.png 821B
proguard-rules.pro 772B
gradle.properties 1KB
local.properties 377B
共 133 条
- 1
- 2
资源评论
weixin_42249667
- 粉丝: 0
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功