0

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

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。我想再添加 8 个 if 语句到 doInbackground

我的问题是,每当我在没有' if ' 语句的情况下运行这个项目时,它都可以工作,但是如果我添加 'if(xy=="abcd")' 它就不起作用。没有错误,所以我想不通。

4

2 回答 2

0

使用 if(xy=="abcd")将不起作用用于xy.equals("abcd") 比较 Java 中的字符串

于 2014-11-19T09:03:28.663 回答
0
if(xy.equals("abcd")){
    //do stuff
}

== operator compares memory addresses you should use `.equals()` when working with strings.
于 2014-11-19T09:03:28.867 回答