简体   繁体   English

Android应用程序的Jsoup连接问题

[英]Jsoup connection problems with Android application

So I am using Jsoup for my project.所以我在我的项目中使用 Jsoup。 The backend code is working fine on the output menu but when I am trying to put it on the android studio, it is not working.后端代码在 output 菜单上运行良好,但是当我尝试将其放在 android 工作室时,它无法正常工作。 I imported the libraries perfectly and no error in the code.我完美地导入了库,代码中没有错误。 I also gave access to the internet using我还使用

<uses-permission android:name="android.permission.INTERNET" />

So I thought of making a new mini-project.所以我想制作一个新的迷你项目。 So now my code looks like所以现在我的代码看起来像

'''
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class MainActivity extends AppCompatActivity {

    public Button button;
    public TextView textview;
    public EditText edittext;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textview = (TextView) findViewById(R.id.textView);
        button = (Button) findViewById(R.id.button);
        edittext = (EditText) findViewById(R.id.editText);

        View.OnClickListener search = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    Document doc = Jsoup.connect("https://www.flipkart.com").get();
                    String title = doc.text();
                    textview.append(title);

                } catch (Exception e){

                }
            }
        };
        button.setOnClickListener(search);
    }
} '''

But nothing is printing in the text view.但是文本视图中没有打印任何内容。 Please tell me the mistake.请告诉我错误。

Can you try this:你可以试试这个:

Executor mExecutor  = Executors.newSingleThreadExecutor();

Tasks.call(mExecutor, new Callable<String>() {
     @Override
     public String call() throws Exception {
         Document doc = Jsoup.connect("https://www.flipkart.com").get();
         String title = doc.text();
         return title;
     }
}).continueWith(new Continuation<String, Object>() {

     @Override
     public Object then(@NonNull Task<String> task) throws Exception {
         textview.append( task.getResult());
         return null;
     }
});

Using Executors.newSingleThreadExecutor() on the other hand allows you to submit multiple tasks.另一方面,使用 Executors.newSingleThreadExecutor() 允许您提交多个任务。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM