在 Hello World 背后开发 Android 应用程序时,我是初学者!所以我真的需要有人告诉我我的应用程序出了什么问题。我的应用程序非常简单,用户在 中输入问题editText
并按下按钮,然后应用程序从中检索信息Yahoo Answers API
。但是当我按下按钮时,我得到的只是TextView
. 我真的需要另一只眼睛来查看我的代码并告诉我出了什么问题。我的模拟器正在运行 android 4.2.2。我不知道是我的 url 导致了这个“错误”消息的显示,还是它在 eclipse 中的某些东西或我的代码中的某些东西。
有人请帮忙!!
主要活动
import java.net.URL;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
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;
public class WhatsYourQuestion extends Activity implements OnClickListener {
static final String baseURL = "http://answer.yahooapis.com/AnswerService/V1/questionSearh?appid=example&query=";
EditText et;
TextView answer;
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
et = (EditText) findViewById(R.id.editText1);
answer = (TextView) findViewById(R.id.stockAnswerOuput);
Button myButton = (Button) findViewById(R.id.button1);
myButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String a = et.getText().toString();
StringBuilder URL = new StringBuilder(baseURL);
URL.append(a + "");
String fullUrl = URL.toString();
try{
URL website = new URL(fullUrl);
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
HandlingXMLProperties doingWork = new HandlingXMLProperties();
xr.setContentHandler(doingWork);
xr.parse(new InputSource(website.openStream()));
String information = doingWork.getInformation();
et.setText(information);
}catch (Exception e){
et.setText("error");
XMLCollectedData 类
public class XMLCollectedData {
private int answer = 0;
public void setAnswer(int a){
answer = a;
}
public String dataToString(){
return "Here is your answer" + answer;
}
处理 xml 属性类
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class HandlingXMLProperties extends DefaultHandler{
XMLCollectedData info = new XMLCollectedData();
public String getInformation() {
return info.dataToString();
}
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
// TODO Auto-generated method stub
if(localName.equals("ChosenAnswer")){
String a = attributes.getValue("type");
int answer = Integer.parseInt(a);
info.setAnswer(answer);
}
我还需要知道我需要使用哪一行 santax,这样我才能定义 qName。有人帮忙