Hello World! の背後にある Android アプリの開発に関しては、私は初心者です。だから、私のアプリのどこが悪いのか教えてくれる人が本当に必要なのです。私のアプリは非常にシンプルです。ユーザーが に質問を入力しeditText
てボタンを押すと、アプリは から情報を取得しますYahoo Answers API
。しかし、ボタンを押すと、「エラー」メッセージが表示されるだけTextView
です。自分のコードを見て、何が問題なのかを教えてくれる別の目が本当に必要です。私のエミュレータはAndroid 4.2.2を実行しています。この「エラー」メッセージが表示されるのは私のURLなのか、それとも日食の何かなのか、私のコードの何かなのかはわかりません。
誰か助けてください!!
主な活動
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);
}
また、qName を定義できるように、使用する必要のある santax の行を知る必要もあります。誰か助けて