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

    }

} 

キーはスイッチ ケースを使用して asynctask に送信されます。さらに 8 つの if ステートメントを doInbackground に追加したい

私の問題は、「if」ステートメントなしでこのプロジェクトを実行するたびに機能するが、「if(xy=="abcd")」を追加すると機能しないことです。エラーはありませんので、これを理解することはできません。

4

2 に答える 2

0

Java で文字列を比較するために使用 if(xy=="abcd")できないxy.equals("abcd")

于 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 に答える