Android新浪星座运势程序开发

有的时候无聊会到新浪网看新浪星座运势,准备自己也写个Android客户端的。首先打算很简单,只显示当天的星座运势。后面在可以在加上周,月,年等。 开发的样式大概是这样的,上半部分的左右两边有两个button可以用来切换星座,当然也可以通过触屏左右滑动。两个button之间显示星座的一些信息,如:星座名字,星座所处的日期范围,运势有效的时间,健康指数,商谈指数,幸运颜色,速配星座。下半部分显示星座运势的详细解释。 上一张自己做好的效果图: 此应用程序很简单,主要是根据星座运势的url获取网页的内容,分析返回的源代码,截取需要的字符串。应用程序所显示的所有文字均来自新浪运势。下面是获取文字的主要代码:
try {
			HttpClient hc = new DefaultHttpClient();
			HttpGet hg = new HttpGet(url);
			HttpResponse hr = hc.execute(hg);
			if (hr.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
				String strResult = EntityUtils.toString(hr.getEntity());
				String str1="星座:";
				String str2="";
				for (int i = 0; i < strResult.length(); i++) {
					if (strResult.charAt(i) == '<' && strResult.substring(i, i + 6).equals("<span>")) {		
						str1 = str1 + strResult.substring(i + 6, i + 9) + "\n星座日期:" + strResult.substring(i + 13, getEnd(strResult, i+13));
					}
					if (strResult.charAt(i) == '有' && strResult.substring(i, i + 4).equals("有效日期")) {		
						str1 = str1 + "\n有效日期:" + strResult.substring(i+5, getEnd(strResult, i+6));
					}
					if(strResult.charAt(i)=='健' && strResult.substring(i, i + 4).equals("健康指数")) {
						str1 = str1 + "\n健康指数:" + strResult.substring(i+12, getEnd(strResult, i+12));
					}
					if(strResult.charAt(i)=='商' && strResult.substring(i, i + 4).equals("商谈指数")) {
							str1 = str1 + "\n商谈指数:" + strResult.substring(i+12, getEnd(strResult, i+12));
					}
					if(strResult.charAt(i)=='幸' && strResult.substring(i, i + 4).equals("幸运颜色")) {
							 str1 = str1 + "\n幸运颜色:" + strResult.substring(i+12, getEnd(strResult, i+12));
					}
					if(strResult.charAt(i)=='速' && strResult.substring(i, i + 4).equals("速配星座")) {
						 str1 = str1 + "\n速配星座:" + strResult.substring(i+12, getEnd(strResult, i+12));
					}
					if(strResult.charAt(i)=='l' && strResult.substring(i, i + 8).equals("lotconts")) {
						int end = i+10;
						while (strResult.charAt(end) != '<') {
							end++;
						}
						str2 = str2 + strResult.substring(i+10, end);
						break;
					}
				}
				viewLuck.setText(str1);
				viewContent.setText(str2);
			}
		} catch (ClientProtocolException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
原文地址:https://www.cnblogs.com/wanyakun/p/3403277.html