jsoup在多个if语句的asynctask内部无法正常工作

时间:2014-11-19 08:57:10

标签: java android android-asynctask jsoup android-parser

我正在制作一个应用程序,使用JSOUP从url中获取一些html。从单个网址解析可以正常工作,但每当我使用多个网址时,它都无法正常工作。 这是我的代码:

public class Test extends AsyncTask<String, Void, Void> {
    String desc;
    String u;
    String key;

    String xy;

    public Test(Activity contex, String key) {
        this.mContex = contex;
        this.key = key;
    }

    Activity mContex;

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        mProgressDialog = ProgressDialog
                .show(getActivity(), "", null, true);
        mProgressDialog.setMessage("Loading...");
        mProgressDialog.setIndeterminate(true);
        mProgressDialog.show();
        xy = key;

    }

    @Override
    protected Void doInBackground(String... params) {
        if (xy == "abcd") {
            String url = "http://.....";
            try {

                Document document = Jsoup.connect(url).get();
                Elements myin = document.select("div.content-wrap");
                desc = myin.text().toString();


            } catch (IOException e) {
                e.printStackTrace();
            }

        }
        return null;

    }

    @Override
    protected void onPostExecute(Void result) {
        respText.setText(desc);

        mProgressDialog.dismiss();

    }

} 

使用switch case将密钥发送到asynctask。我想在doInbackground中添加8个if语句

我的问题是每当我运行这个项目时没有&#39;如果&#39;声明它有效,但如果我添加&#39; if(xy ==&#34; abcd&#34;)&#39;它没有用。没有错误,所以我无法理解这一点。

2 个答案:

答案 0 :(得分:0)

使用if(xy=="abcd")将无法使用xy.equals("abcd")来比较Java中的字符串

答案 1 :(得分:0)

if(xy.equals("abcd")){
    //do stuff
}

== operator compares memory addresses you should use `.equals()` when working with strings.