上一篇内容

练手小项目(2)-生活小助手

今天星期一。趁着中午的歇息时间把 第二个写出来 星座运势,近期看看极客学院 用聚合数据做了天气预报的视频教程,不好评价他。看他在后面的代码变更那么大,我就知道,后面肯定做不下去,于是。就改代码了。代码变更那么大,有几个人会去理解,还不如我自己写................

先看布局

点击去就是一个spinner 用几个textview显示查询内容   布局有点丑,主要是给别人做功能,UI我就不考虑

关于UI  我还是要贴下代码。假设你有想法就把他美化下呗

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent" ><Spinnerandroid:id="@+id/constellation_name"android:layout_width="match_parent"android:layout_height="wrap_content" /><LinearLayoutandroid:layout_marginTop="20dp"android:layout_below="@id/constellation_name"android:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="vertical" ><TextViewandroid:id="@+id/datetime"style="@style/TextStyle"android:text="时间" /><TextViewandroid:id="@+id/name"style="@style/TextStyle"android:text="星座" /><TextViewandroid:id="@+id/OFriend"style="@style/TextStyle"android:text="最佳配偶星座" /><TextViewandroid:id="@+id/all"style="@style/TextStyle"android:text="幸运度" /><TextViewandroid:id="@+id/color"style="@style/TextStyle"android:text="幸运颜色" /><TextViewandroid:id="@+id/health"style="@style/TextStyle"android:text="健康运势" /><TextViewandroid:id="@+id/love"style="@style/TextStyle"android:text="爱情运势" /><TextViewandroid:id="@+id/money"style="@style/TextStyle"android:text="金钱运势" /><TextViewandroid:id="@+id/work"style="@style/TextStyle"android:text="工作运势" /><TextViewandroid:id="@+id/number"style="@style/TextStyle"android:text="幸运数字" /><TextViewandroid:id="@+id/summary"style="@style/TextStyle"android:text="建议:" /></LinearLayout></RelativeLayout>

然后看 java代码吧

1.实例化全部控件

  private void initview() {spinner = (Spinner) findViewById(R.id.constellation_name);datetime=(TextView) findViewById(R.id.datetime);name=(TextView) findViewById(R.id.name);OFriend=(TextView) findViewById(R.id.OFriend);all=(TextView) findViewById(R.id.all);color=(TextView) findViewById(R.id.color);health=(TextView) findViewById(R.id.health);love=(TextView) findViewById(R.id.love);money=(TextView) findViewById(R.id.money);work=(TextView) findViewById(R.id.work);number=(TextView) findViewById(R.id.number);summary=(TextView) findViewById(R.id.summary);}

2.建立数据元 给spinner 进行填充,

// 建立数据源  
        String[] mItems = getResources().getStringArray(R.array.book);

数据源在I res/values/arrays  就是12星座

<?xml version="1.0" encoding="utf-8"?>
<resources><string-array name="book"><item >当前没有选择星座</item><item >白羊座</item><item >金牛座</item><item >双子座</item><item >巨蟹座</item><item >狮子座</item><item >处女座</item><item >天枰座</item><item >天蝎座</item><item >射手座</item><item >魔蝎座</item><item >水瓶座</item><item >双鱼座</item></string-array></resources>

3.数据源有了,就要定义 适配器了  spainner 的使用方法就是一个mvc   记住就可以

由于数据不多 所以就用arrayadapter

// 建立Adapter而且绑定数据源  ArrayAdapter<String> _Adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, mItems);//绑定 Adapter到控件  spinner.setAdapter(_Adapter);  

4.对于spinnner点击事件处理 依据点击的条目 进行联网操作。json解析 然后展示  看所有代码吧 我在代码中解释

package com.example.helper;import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;import org.json.JSONException;
import org.json.JSONObject;import com.example.helper.utils.HttpUtils;
import com.example.helper.utils.HttpUtils.OnNetWorkResponse;
import com.example.helper.utils.UrlApi;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;public class ConstellationSearch extends Activity {private Spinner spinner;private TextView datetime,name,OFriend,all,color,health,love,money,work,number,summary;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.constellation_search);initview();// 建立数据源  String[] mItems = getResources().getStringArray(R.array.book);  // 建立Adapter而且绑定数据源  ArrayAdapter<String> _Adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, mItems); //绑定 Adapter到控件  spinner.setAdapter(_Adapter);  spinner.setOnItemSelectedListener(new OnItemSelectedListener() {private String encode;@Overridepublic void onNothingSelected(AdapterView<?> parent) {// TODO Auto-generated method stub}@Overridepublic void onItemSelected(AdapterView<?> parent, View view,int position, long id) {String str=parent.getItemAtPosition(position).toString();  Toast.makeText(ConstellationSearch.this, "你点击的是:"+str, 2000).show();  try {//此数据要求url编码所以我们转一下encode = URLEncoder.encode(str,"utf-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}//拼接字符串 成url进行联网String path=UrlApi.TWO+encode+UrlApi.TWO_ITEM;HttpUtils.RequestNetWork(path, new OnNetWorkResponse() {@Overridepublic void ok(String response) {try {JSONObject o1=new JSONObject(response);int error_code = o1.getInt("error_code");System.out.println(error_code);if (error_code==0) {/*json格式 * {"error_code": 0,"reason": "Success","result": {"OFriend": "狮子座","all": "61%","color": "橙","date": "1416199893","datetime": "2014-11-17","health": "82%","love": "59%","money": "67%","name": "双子座","number": "2","summary": "今天。工作上,你的任务要是想要提前完毕的话。得须要身边的同事多多配合才行;感情上。不要吝啬于表达自己的感情。要让对方体验到你的真心才行。健康上,状态不错;財运上,下降。

", "work": "55%" } } * * */ //json解析很easy 我简单 讲一下 第一个是大括号 SO jsonobject 然后看下我们要的数据在哪,result // 后面也是括号 getStringObject JSONObject o2 = o1.getJSONObject("result"); datetime.setText("当前时间: "+o2.getString("datetime")); name.setText("你选择星座是: "+o2.getString("name")); OFriend.setText("最佳配偶星座: "+o2.getString("OFriend")); all.setText("幸运度: "+o2.getString("all")); color.setText("幸运色"+o2.getString("color")); health.setText("健康指数: "+o2.getString("health")); love.setText("爱情指数: "+o2.getString("love")); money.setText("金钱指数: "+o2.getString("money")); work.setText("升职指数: "+o2.getString("work")); number.setText("幸运数字: "+o2.getString("number")); summary.setText("建议: "+o2.getString("summary")); } } catch (JSONException e) { e.printStackTrace(); } } @Override public void error(String error) { } }); } }); } private void initview() { spinner = (Spinner) findViewById(R.id.constellation_name); datetime=(TextView) findViewById(R.id.datetime); name=(TextView) findViewById(R.id.name); OFriend=(TextView) findViewById(R.id.OFriend); all=(TextView) findViewById(R.id.all); color=(TextView) findViewById(R.id.color); health=(TextView) findViewById(R.id.health); love=(TextView) findViewById(R.id.love); money=(TextView) findViewById(R.id.money); work=(TextView) findViewById(R.id.work); number=(TextView) findViewById(R.id.number); summary=(TextView) findViewById(R.id.summary); } }

点击下载源代码

转载于:https://www.cnblogs.com/clnchanpin/p/6920230.html

练手小项目(2)-生活小助手--星座运势查询相关推荐

  1. 星座运势查询微信小程序源码 周公自定义解梦源码

    源码介绍 这是一款以星座运势查询,周公自定义解梦为主的一款小程序 内支持流量主模式插入 多个功能包含如下: 星座查询 星座运势查询 十二生肖查询 生肖运势查询 星座配对 生肖配对 配对排行榜 星盘查询 ...

  2. 【小程序源码】星座运势,周公解梦下载

    这是一款以星座运势查询,周公自定义解梦为主的一款小程序 多个功能包含如下: 星座查询 星座运势查询 十二生肖查询 生肖运势查询 星座配对 生肖配对 配对排行榜 星盘查询 周公解梦--等等大家自行研究吧 ...

  3. 小程序源码:星座运势,周公解梦流量主微信小程序

    这是一款以星座运势查询,周公自定义解梦为主的一款小程序 内支持流量主模式插入 多个功能包含如下: 星座查询 星座运势查询 十二生肖查询 生肖运势查询 星座配对 生肖配对 配对排行榜 星盘查询 周公解梦 ...

  4. 小程序源码:星座运势,周公解梦-多玩法安装简单

    这是一款以星座运势查询,周公自定义解梦为主的一款小程序 内支持流量主模式插入 多个功能包含如下: 星座查询 星座运势查询 十二生肖查询 生肖运势查询 星座配对 生肖配对 配对排行榜 星盘查询 周公解梦 ...

  5. 星座运势,周公解梦流量主微信小程序源码下载

    这是一款以星座运势查询,周公自定义解梦为主的一款小程序 内支持流量主模式插入 多个功能包含如下: 星座查询 星座运势查询 十二生肖查询 生肖运势查询 星座配对 生肖配对 配对排行榜 星盘查询 周公解梦 ...

  6. 周公解梦星座运势小程序搭建

    这是一款以星座运势查询,周公解梦为主的小程序 支持流量主插入,激励广告等 功能包涵:星座查询,星座运势查询,十二生肖查询,生肖运势查询,星座配对,生肖配对,配对排行榜,星盘查询 源码 解压文件包, 1 ...

  7. 微信小程序:星座运势,周公解梦流量主微信小程序

    这是一款以星座运势查询,周公自定义解梦为主的一款小程序 内支持流量主模式插入 多个功能包含如下: 星座查询 星座运势查询 十二生肖查询 生肖运势查询 星座配对 生肖配对 配对排行榜 星盘查询 周公解梦 ...

  8. [含文档+源码等]微信小程序校园生活小助手+后台管理系统前后分离VUE[包运行成功]

            博主介绍:✌在职Java研发工程师.专注于程序设计.源码分享.技术交流.专注于Java技术领域和毕业设计✌ 项目名称 [含文档+源码等]微信小程序校园生活小助手+后台管理系统前后分离V ...

  9. 微信小程序校园生活小助手+后台管理系统前后分离VUE

     博主介绍:✌在职Java研发工程师.专注于程序设计.源码分享.技术交流.专注于Java技术领域和毕业设计✌ 项目名称 微信小程序校园生活小助手+后台管理系统前后分离VUE 系统说明 <微信小程 ...

最新文章

  1. 【其他】GIT常用原生命令
  2. maven私服的配置使用
  3. 关于java集合框架(三):Map概述与TreeMap
  4. SAP 电商云 Spartacus UI 修改代码后,重新构建基于 SSR 版本的程序报错
  5. 08_提升方法Boosting2_统计学习方法
  6. STM32F4 LTDC学习
  7. 关于time_wait状态的理解
  8. spring-session(一)揭秘续篇
  9. 统计学基础之卡方检验
  10. 高德地图看各省分界线_请教 高德地图绘制行政区划边界
  11. java ee中如何实现数据库中数据柱状图,#java 将echarts生成的图表导出到excle表格中,后台是javaee,求大神解决,谢谢#excel输入数值e...
  12. ceph pg peering和恢复 (2)
  13. 乓乓响再度冲刺港股:来自临时及应急服务客户毛利率达70%
  14. Ubuntu 如何直接回到桌面
  15. EXT4 之 Android 文件系统剖析
  16. 微信小程序checkbox样式美化
  17. 转载一个特征提取的方法——AE
  18. 数据结构·堆·完全二叉树
  19. vue 播放rtmp 直播拉流视频
  20. AOP基于注解环绕通知

热门文章

  1. 计算机时间更改不了,电脑时间不能修改怎么办【图解】
  2. 【OpenFOAM】-olaFlow-算例4- irreg45degTank
  3. 大数据助推新型智库建设
  4. 初学者Django框架的基本使用,以及项目部署(Docker部署)
  5. C++学习(九十六)安腾处理器Itanium
  6. iOS - 3DTouch 3D 触摸
  7. 中科方德操作系统虚拟机安装步骤备忘
  8. “马云的初恋”创造中国最大的地摊经济!
  9. ANSYS Workbench接触设置面板各参数含义详解
  10. RTT学习笔记9-IO设备模型