2013-06-21 4 views
0

В моем Android Project, когда я пытаюсь подключиться к веб-странице follwing, http://familytree-photoalbum.com/android.php?a=login&[email protected]&password=JLjZAT13 и получить синтаксический разбор данных, .. мой Application получить разбился, не показатель вне, что em я уезжаю.Брус Подключение к XML-страницу, с помощью SAX PARSING

Это Snipet of Parsing file.

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)); 
    } 

} 

здесь метод xmlParsing, который вызывается из моего AsyncTask

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; 

} 

Вот класс DefaultHandler имени HandlingLoginPage.class

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; 
} 

} 
+0

Вы делаете все это на нитке ui? –

+0

Sory for late Reply, у меня была проблема с Интернетом @RoyJamesSchumacher, Да, я новичок, и мой партнер, который является экспертом в PHP, помогает мне ... проблема, которую я получаю, я не могу подключитесь к веб-сайту. – asadnwfp

+0

Более того, я узнал эту технику из видео, предоставленной New Boston. [link] (http://thenewboston.org/watch.php?cat=6&number=156) – asadnwfp

ответ

0

на андроид вы можете не делайте никаких действий в сети по основному потоку ui, вам нужно либо запустить его в отдельную нить или использовать класс Async. Также убедитесь, что вы заявили в своем андроиде, что вам нужен доступ в Интернет со следующим разрешением:

<uses-permission android:name="android.permission.INTERNET" /> 
+0

Я попытался сделать это с помощью AsyncTask и все еще даю мне ту же ошибку, я хочу загрузить код, так что если есть какой-то способ проверить его ... я не понимаю, почему он падает. :( – asadnwfp

+0

Я обновил эту тему, с новым кодом, .. @RoyJamesSchumacher – asadnwfp

+0

, если вы хотите выслать мне по электронной почте код, я могу взглянуть на него –