Android プロジェクトで、次の Web ページ http://familytree-photoalbum.com/android.php?a=login&email=saqib.amin1@gmail.com&password=JLjZAT13に接続し てデータ解析を取得しようとすると、..私のアプリケーションがクラッシュし、何を残しているのかわかりません。
これが解析ファイルのスニペットです。
case R.id.bSignIn:
String e = email.getText().toString(); // Getting Email from LoginPage
String p = password.getText().toString(); // Getting Password from LoginPage
StringBuilder URL = new StringBuilder(baseURL);
URL.append(e + "&password=" + p);
String fullUrl = URL.toString();
new loadURL().execute(fullUrl);
break;
私が使用している私の AsyncTask 。
protected class loadURL extends AsyncTask<String, Void, Intent> {
protected Intent doInBackground(String... fullUrl) {
return xmlParsing(fullUrl[0]);
}
protected void onPostExecute(Intent intent) {
startActivity(intent);
startActivity(new Intent(LoginPage.this, InvalidUser.class));
}
}
ここに、私の AsyncTask から呼び出される xmlParsing メソッドがあります
protected Intent xmlParsing(String url) {
Intent activity = new Intent();
try {
URL loginPage = new URL(url);
// Getting XML Reader
/**
* The parse() method of SAXParser class reads the contents. The
* SAXParserFactory is a factory API that enables applications to
* configure and obtain a SAX parser to parse XML documents. The
* startElement() method retrieves all starting elements and prints
* them on the console. Whenever an error occurs it throws the
* SAXException.
*/
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
HandlingLoginPage doingWork = new HandlingLoginPage();
xr.setContentHandler(doingWork);
xr.parse(new InputSource(loginPage.openStream()));
Log.i("info", doingWork.code());
if ((doingWork.userInformation()) == true) {
activity = new Intent(LoginPage.this, HomeScreen.class);
} else
activity = new Intent(LoginPage.this, InvalidUser.class);
} catch (Exception e1) {
e1.printStackTrace();
title.setText("Error");
}
return activity;
}
以下は、 HandlingLoginPage.classという名前の DefaultHandler クラスです。
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
import android.content.Intent;
public class HandlingLoginPage extends DefaultHandler {
String defineCode = null;
boolean user = false;
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
if (localName.equals("code")) {
defineCode = attributes.getValue("data");
if (defineCode.equals("IP")) {
user = false;
} else if (defineCode.equals("LS"))
user = true;
}
}
protected boolean userInformation (){
return user;
}
}