Google官方网络框架Volley实战——QQ吉凶测试,南无阿弥陀佛!
2016-01-09 22:43
447 查看
Google官方网络框架Volley实战——QQ吉凶测试,南无阿弥陀佛!
这次我们用第三方的接口来做一个QQ吉凶的测试项目,代码依然是比较的简单
无图无真相
直接撸代码了,详细解释都已经写在注释里了
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <EditText android:id="@+id/et_qq" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:background="@drawable/whitebg" android:gravity="center" android:hint="请输入QQ号" android:lines="3" android:numeric="integer" /> <Button android:id="@+id/btn_go" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="15dp" android:layout_marginTop="5dp" android:background="@drawable/graybg" android:text="求佛" /> <TextView android:id="@+id/tv_conclusion" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="15dp" android:layout_marginBottom="5dp" android:layout_marginTop="5dp" android:text="结果" android:textSize="18sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#fff" /> <TextView android:id="@+id/tv_analysis" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="15dp" android:layout_marginTop="5dp" android:text="分析" android:textSize="18sp" /> <com.lgl.qq.WaterRippleView android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" > </com.lgl.qq.WaterRippleView> </LinearLayout>
MainActivity
package com.lgl.qq; import org.json.JSONException; import org.json.JSONObject; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import com.android.volley.Request.Method; import com.android.volley.RequestQueue; import com.android.volley.Response; import com.android.volley.Response.Listener; import com.android.volley.VolleyError; import com.android.volley.toolbox.StringRequest; import com.android.volley.toolbox.Volley; public class MainActivity extends Activity implements OnClickListener { private EditText et_qq; private Button btn_go; private TextView tv_conclusion, tv_analysis; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { // 初始化控件 et_qq = (EditText) findViewById(R.id.et_qq); btn_go = (Button) findViewById(R.id.btn_go); btn_go.setOnClickListener(this); tv_conclusion = (TextView) findViewById(R.id.tv_conclusion); tv_analysis = (TextView) findViewById(R.id.tv_analysis); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_go: if (et_qq == null) { Toast.makeText(MainActivity.this, "都不留个QQ号佛主怎么算尼?", Toast.LENGTH_LONG).show(); } else { Volley_Get(); } break; } } private void Volley_Get() { //获取到输入的QQ号 String qq = et_qq.getText().toString(); //第三方接口 String url = "http://japi.juhe.cn/qqevaluate/qq?key=8d9160d4a96f2a6b5316de5b9d14d09d&qq=" + qq; RequestQueue queue = Volley.newRequestQueue(this); StringRequest request = new StringRequest(Method.GET, url, new Listener<String>() { // 成功 @Override public void onResponse(String json) { //Volley解析得到json Volley_Json(json); } }, new Response.ErrorListener() { // 失败 @Override public void onErrorResponse(VolleyError errorLog) { Toast.makeText(MainActivity.this, "失败:" + errorLog.toString(), Toast.LENGTH_LONG) .show(); } }); queue.add(request); } //解析json private void Volley_Json(String json) { try { //获得JSONObject对象 JSONObject jsonObject = new JSONObject(json); //解析result JSONObject object = jsonObject.getJSONObject("result"); //解析data JSONObject object1 = object.getJSONObject("data"); tv_conclusion.setText("结果:" + object1.getString("conclusion")); tv_analysis.setText("分析:" + object1.getString("analysis")); } catch (JSONException e) { Toast.makeText(MainActivity.this, "施主都不留个QQ号佛主怎么算尼?", Toast.LENGTH_LONG).show(); e.printStackTrace(); } } }
这里有几点需要说明
1.项目中的水波纹特效请看:Android特效专辑(一)——水波纹过渡特效(首页)
2.项目中的Button样式:
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <solid android:color="#ffDEDEDE" /> <corners android:radius="2.0dp" /> </shape>
3.项目中的EditText样式
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#ffffffff"/> <corners android:radius="2.0dp"/> </shape>
Demo下载:http://download.csdn.net/detail/qq_26787115/9397673
相关文章推荐
- Google官方网络框架Volley实战——QQ吉凶测试,南无阿弥陀佛!
- ping命令显示找不到主机,用安全软件网络急救箱检测显示IP地址错误
- Spark Streaming:TCP(基本类型)数据源
- iOS socket TCP UDP
- 类脑计算与神经网络加速
- 对于System.Net.Http的学习(一)——System.Net.Http 简介(转)
- 猿题库 iOS 客户端架构设计(原文地址:http://gracelancy.com/blog/2016/01/06/ape-ios-arch-design/)
- Java学习之网络编程实例
- pyhton对网络设备的日常巡检
- pyhton对网络设备的日常巡检
- UNIX网络编程——select函数的并发限制和 poll 函数应用举例
- android httpClient 支持HTTPS的2种处理方式
- HTTP 错误 404.2 - Not Found。由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面
- 《数学之美》马尔科夫链的扩展-贝叶斯网络
- TCP Socket和ZeroMQ socket的区别
- 贝叶斯信念网络和马尔科夫链有什么区别
- 【转】贝叶斯网络+马尔科夫毯 简介
- codevs1907 方格取数 3||tyvj1338QQ农场|网络流
- 如何使用http或httpClient向服务器上传图片 以及使用http上传图片时协议的描述
- https GET请求