添加有道词典功能

主界面主要代码如下:

<font size="3" color="#000000" face="微软雅黑">package xiaosi.youdao; 

import org.apache.http.HttpResponse; 
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.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; 

public class YoudaoActivity extends Activity 
{ 
private EditText edit = null; 
private Button search = null; 
private TextView text = null; 
private String YouDaoBaseUrl = "http://fanyi.youdao.com/openapi.do"; 
private String YouDaoKeyFrom = "MyLifes"; 
private String YouDaoKey = "你申请的API Key"; 
private String YouDaoType = "data"; 
private String YouDaoDoctype = "json"; 
private String YouDaoVersion = "1.1"; 
@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 
init(); 
} 

private void init() 
{ 
edit = (EditText) findViewById(R.id.edit); 
search = (Button) findViewById(R.id.search); 
search.setOnClickListener(new searchListener()); 
text = (TextView) findViewById(R.id.text); 
} 

private class searchListener implements OnClickListener 
{ 
@Override 
public void onClick(View v) 
{ 
String YouDaoSearchContent = edit.getText().toString().trim(); 
String YouDaoUrl = YouDaoBaseUrl+"?keyfrom=" + YouDaoKeyFrom + "&key=" + YouDaoKey + "&type=" + YouDaoType + "&doctype=" 
+ YouDaoDoctype + "&type=" + YouDaoType + "&version=" + YouDaoVersion + "&q=" + YouDaoSearchContent; 
try 
{ 
AnalyzingOfJson(YouDaoUrl); 
} 
catch (Exception e) 
{ 
e.printStackTrace(); 
} 
} 
} 

private void AnalyzingOfJson(String url) throws Exception 
{ 
// 第一步,创建HttpGet对象 
HttpGet httpGet = new HttpGet(url); 
// 第二步,使用execute方法发送HTTP GET请求,并返回HttpResponse对象 
HttpResponse httpResponse = new DefaultHttpClient().execute(httpGet); 
if (httpResponse.getStatusLine().getStatusCode() == 200) 
{ 
// 第三步,使用getEntity方法活得返回结果 
String result = EntityUtils.toString(httpResponse.getEntity()); 
System.out.println("result:" + result); 
JSONArray jsonArray = new JSONArray("[" + result + "]"); 
String message = null; 
for (int i = 0; i < jsonArray.length(); i++) 
{ 
JSONObject jsonObject = jsonArray.getJSONObject(i); 
if (jsonObject != null) 
{ 
String errorCode = jsonObject.getString("errorCode"); 
if (errorCode.equals("20")) 
{ 
Toast.makeText(getApplicationContext(), "要翻译的文本过长", Toast.LENGTH_SHORT); 
} 
else if (errorCode.equals("30 ")) 
{ 
Toast.makeText(getApplicationContext(), "无法进行有效的翻译", Toast.LENGTH_SHORT); 
} 
else if (errorCode.equals("40")) 
{ 
Toast.makeText(getApplicationContext(), "不支持的语言类型", Toast.LENGTH_SHORT); 
} 
else if (errorCode.equals("50")) 
{ 
Toast.makeText(getApplicationContext(), "无效的key", Toast.LENGTH_SHORT); 
} 
else 
{ 
// 要翻译的内容 
String query = jsonObject.getString("query"); 
message = query; 
// 翻译内容 
String translation = jsonObject.getString("translation"); 
message += "\t" + translation; 
// 有道词典-基本词典 
if (jsonObject.has("basic")) 
{ 
JSONObject basic = jsonObject.getJSONObject("basic"); 
if (basic.has("phonetic")) 
{ 
String phonetic = basic.getString("phonetic"); 
message += "\n\t" + phonetic; 
} 
if (basic.has("phonetic")) 
{ 
String explains = basic.getString("explains"); 
message += "\n\t" + explains; 
} 
} 
// 有道词典-网络释义 
if (jsonObject.has("web")) 
{ 
String web = jsonObject.getString("web"); 
JSONArray webString = new JSONArray("[" + web + "]"); 
message += "\n网络释义:"; 
JSONArray webArray = webString.getJSONArray(0); 
int count = 0; 
while(!webArray.isNull(count)){ 

if (webArray.getJSONObject(count).has("key")) 
{ 
String key = webArray.getJSONObject(count).getString("key"); 
message += "\n\t<"+(count+1)+">" + key; 
} 
if (webArray.getJSONObject(count).has("value")) 
{ 
String value = webArray.getJSONObject(count).getString("value"); 
message += "\n\t " + value; 
} 
count++; 
} 
} 
} 
} 
} 
text.setText(message); 
} 
else 
{ 
Toast.makeText(getApplicationContext(), "提取异常", Toast.LENGTH_SHORT); 
} 
} 
} </font>

 

posted @ 2015-07-16 11:53  NB_95  阅读(238)  评论(0编辑  收藏  举报