用于Android的JSOUP解析强制关闭

林潘

我正在尝试使用JSOUP从网站(http://hdh.ucsd.edu/mobile/dining/locationdetails.aspx?l=11获取菜单数据,但是每当我尝试获取链接时,我的android应用就会崩溃。是什么原因?这是我的代码

public class SixthFragment extends Fragment {

String url = "http://hdh.ucsd.edu/mobile/dining/locationdetails.aspx?l=11";
ProgressDialog mProgressDialog;
String MENU;
String HOURS;
TextView textview;

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.fragment_sixth, container, false);
    textview = (TextView) rootView.findViewById(R.id.textView10);

    new JSOUP().execute();
    return rootView;

}

public class JSOUP extends AsyncTask<Void, Void, Void>{
    ProgressDialog dialog;

    @Override
    protected void onPreExecute(){
        super.onPreExecute();
        dialog = new ProgressDialog(getActivity());
        dialog.setMessage("loading...");
        dialog.show();

    }

    @Override
    protected Void doInBackground(Void... params){
        try{

            Document document = Jsoup.connect(url).get();
            Elements elements = document.select("a[href]");
            //HOURS = elements.text();
            System.out.println(elements.size());
            for(int i = 0; i<elements.size(); i++){

                MENU += "\n" + elements.get(i).text();
                System.out.println(i);

            }

        }

        catch (Exception e){

        }
        return null;
    }

    @Override
    protected void onPostExecute(Void result){
        dialog.dismiss();

        textview.setText(MENU);
        super.onPostExecute(result);
    }

}

}

我的错误显示为

11-28 13:48:59.175 23230-23230/com.lamdevs.tritonbites E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.lamdevs.tritonbites, PID: 23230
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
at com.lamdevs.tritonbites.fragments.SixthFragment$JSOUP.onPostExecute(SixthFragment.java:82)
at com.lamdevs.tritonbites.fragments.SixthFragment$JSOUP.onPostExecute(SixthFragment.java:43)
at android.os.AsyncTask.finish(AsyncTask.java:632)
at android.os.AsyncTask.access$600(AsyncTask.java:177)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

我不明白,因为当我输出元素的大小时,元素的大小为61。另外,有没有办法分别获取早餐,午餐和晚餐?谢谢

朱利奥·辛格(Julio Zynger)

请发布您的布局XML R.layout.fragment_sixth可能是您指的是错误的ID,这会导致de NullPointerException


要分别获取每个“早餐”,“午餐”和“晚餐”,您可以简单地遍历<div>具有id的HTML元素内的最后三个标签MainContent_divDailySpecials(我确实通过Chrome开发者工具检查器发现了id来查看网站DOM结构)。

因此,一开始,只需使用

Document document = Jsoup.connect(url).get();
Element parentDiv = document.getElementById("MainContent_divDailySpecials");

从那里开始,您可以向后迭代以获取其中的最后三个孩子div(请记住,如果在任何时间更改该页面的结构,您的代码都会被破坏)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用于Android的JSOUP解析强制关闭

来自分类Dev

XmlPullParser或JSoup用于在Android中解析HTML

来自分类Dev

Android Admob强制关闭

来自分类Dev

Jsoup Android解析

来自分类Dev

Jsoup Android解析

来自分类Dev

Android导航应用强制关闭

来自分类Dev

listview android setonitemclick使强制关闭

来自分类Dev

在Android应用中强制关闭

来自分类Dev

强制关闭 Android 位置权限

来自分类Dev

Android HTML Jsoup解析速度

来自分类Dev

Android Jsoup从单行XML解析

来自分类Dev

解析本地数据存储区:强制关闭应用程序后,无法从网络访问ACL保护的对象吗?(Android)

来自分类Dev

强制关闭android应用后显示通知

来自分类Dev

Android Studio强制关闭计算机

来自分类Dev

在Android代码中强制打开和强制关闭WiFi连接

来自分类Dev

适用于Android的简单Jsoup代码

来自分类Dev

Android应用程序的JSOUP解析问题

来自分类Dev

使用 Jsoup for Android 解析多个页面 HTML

来自分类Dev

防止身份验证后强制门户自动关闭(Android)

来自分类Dev

在Android手机中显示强制关闭错误

来自分类Dev

Android应用程序挂起,直到强制关闭

来自分类Dev

构建后,Cordova Android应用程序强制关闭

来自分类Dev

Android清单变更强制关闭应用程序

来自分类Dev

Android自定义对话框强制关闭问题

来自分类Dev

Eclipse Android Project强制在启动后立即关闭吗?

来自分类Dev

Android:在Application类中强制关闭该应用

来自分类Dev

单击菜单项android时强制关闭

来自分类Dev

在Android手机中显示强制关闭错误

来自分类Dev

Socket.isConnected()使我的Android应用程序强制关闭