1

ログインを使用する必要があるAndroidアプリケーションを作成しました。このために、ログインのためにxmlを解析する必要があります。ログインボタンの下に次のコードを記述します。

   loginButton.setOnClickListener(new OnClickListener()
        {      
            public void onClick(View v)
            {
                getInput();
                  parserMethod=new ParserMethod();
                    login=parserMethod.parseLoginStatus(userName,password,mobileNo,code);

                  if(login.getLoginStatus().equals("Sucess.."))
                  {
                      i=new Intent();
                      i.setClass(LoginActivity.this, MainActivity.class);
                      startActivity(i);  
                  }                  
            }               
        }); 

public Login parseLoginStatus(String userName, String password,String mobileNo, String code) 
{
    String sourceString="http://www.example.info/mobapp/Web_service/checkLogin.php?userId=robin&password=123456&mobile=0&code=8080&output=xml";
    loadParseData(sourceString);
    return MyXMLHandler.login;
}



    private void loadParseData(String sourceString) 
{
    try
    {
        SAXParserFactory spf = SAXParserFactory.newInstance();
        SAXParser sp = spf.newSAXParser();
        XMLReader xr = sp.getXMLReader();
        URL sourceUrl=new URL(sourceString);
        MyXMLHandler myXMLHandler = new MyXMLHandler();
        xr.setContentHandler(myXMLHandler);
        xr.parse(new InputSource(sourceUrl.openStream()));          
    }
    catch(Exception e)
    {
        System.out.println("XML Pasing Excpetion = " + e);
    }   
}

しかし問題は、ネットが利用できないか、xml が利用できない場合にアプリケーションがクラッシュすることです。どうすれば問題を解決できますか。前もって感謝します。

4

2 に答える 2

0

これはあなたの問題を解決するはずです...

 public Login parseLoginStatus(String userName, String password,String mobileNo, String code) 
    {
        String sourceString="http://www.amarhost.info/mobapp/Web_service/checkLogin.php?userId=databiz&password=123456&mobile=0&code=8080&output=xml";

    if(sourceString.equals("message it gives when there is no net connection")){
    return null;
    }
        //String sourceString="http://www.amarhost.info/mobapp/Web_service/checkLogin.php?userId="+userName+"&password="+password+"&mobile="+mobileNo+"&code="+code+"&output=xml";
        loadParseData(sourceString);
        return MyXMLHandler.login;
    }
于 2011-08-04T04:26:48.920 に答える
0

まず、メイン UI スレッド (ボタン内OnCLickListener) でログインを処理しないでください。使い方はこちらの記事でご確認くださいAsyncTask

于 2011-08-04T03:35:56.823 に答える