Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jsoup无法正确获取html(?)_Java_Android_Html_Listview - Fatal编程技术网

Java Jsoup无法正确获取html(?)

Java Jsoup无法正确获取html(?),java,android,html,listview,Java,Android,Html,Listview,好的,我用Jsoup从网站上下载了一些html,我试着把这些html放到一个列表视图中。应用程序编译时没有错误,但当我单击按钮时,listview为空。这(imo)可能是因为我没有正确地实现jsoup代码,并且没有下载html,或者因为即使正确地下载html,也没有正确地将其添加到listview(是的,我已经实现了internet权限)。这是我的密码: package davidgb.baseballspain; import android.os.AsyncTask; import andr

好的,我用Jsoup从网站上下载了一些html,我试着把这些html放到一个列表视图中。应用程序编译时没有错误,但当我单击按钮时,listview为空。这(imo)可能是因为我没有正确地实现jsoup代码,并且没有下载html,或者因为即使正确地下载html,也没有正确地将其添加到listview(是的,我已经实现了internet权限)。这是我的密码:

package davidgb.baseballspain;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

public class MainActivity extends AppCompatActivity {
@Override

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

    Button but1 = (Button) findViewById(R.id.but);
    but1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            new doit().execute();
        }
    });}

public class doit extends AsyncTask<Void, Void, Void> {
ListView lista = (ListView)findViewById(R.id.lista);
    String result1;
    String result2;
    String result3;
    String result4;
    String result5;
    String result6;

    String[] resultsizq = {result1, result3, result5,};
    String[] resultsder = {result2, result4, result6,};

    @Override
    protected void onPostExecute(Void aVoid) {
       CustomAdapter customAdapter = new CustomAdapter();
       lista.setAdapter(customAdapter);
   }

    Class CustomAdapter extends BaseAdapter{
       @Override
        public int getCount() {
            return resultsizq.length;
        }
        @Override
       public Object getItem(int position) {
            return null;
        }
        @Override
        public long getItemId(int position) {
            return 0;
        }
        @Override
        public View getView(int position, View view, ViewGroup parent) {
            view = getLayoutInflater().inflate(R.layout.customlayout,null);

            TextView resultsiz= (TextView)view.findViewById(R.id.resultsiz);
            TextView resultsde= (TextView)view.findViewById(R.id.resultsde);


            resultsiz.setText(resultsizq[position]);
            resultsde.setText(resultsder[position]);

           return view;
        }
    }



    protected Void doInBackground(Void... params) {

        try {

            Document doc = Jsoup.connect("http://www.rfebs.es/estadisticas/2017/liga/B_res.php").get();


            Elements result = doc.getElementsByClass("bianco_me");

            if (result.size() > 0) {

                result1 = result.get(1).text();

                result2 = result.get(2).text();

                result3 = result.get(3).text();

                result4 = result.get(4).text();

                result5 = result.get(5).text();

                result6 = result.get(6).text();

            }



        } catch (Exception e) {

            e.printStackTrace();
        }

        return null;
    }

}}
package davidgb.baseball西班牙;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.support.v7.app.AppActivity;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.BaseAdapter;
导入android.widget.Button;
导入android.widget.ListView;
导入android.widget.TextView;
导入org.jsoup.jsoup;
导入org.jsoup.nodes.Document;
导入org.jsoup.select.Elements;
公共类MainActivity扩展了AppCompatActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button but1=(Button)findViewById(R.id.but);
但是1.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
新建doit().execute();
}
});}
公共类doit扩展了异步任务{
ListView lista=(ListView)findViewById(R.id.lista);
字符串结果1;
字符串结果2;
字符串结果3;
字符串结果4;
字符串结果5;
字符串结果6;
字符串[]resultsizq={result1,result3,result5,};
字符串[]resultsder={result2,result4,result6,};
@凌驾
受保护的void onPostExecute(void避免){
CustomAdapter CustomAdapter=新的CustomAdapter();
setAdapter(customAdapter);
}
类CustomAdapter扩展了BaseAdapter{
@凌驾
public int getCount(){
返回resultsizq.length;
}
@凌驾
公共对象getItem(int位置){
返回null;
}
@凌驾
公共长getItemId(int位置){
返回0;
}
@凌驾
公共视图getView(内部位置、视图视图、视图组父视图){
view=GetLayoutFlater().充气(R.layout.customlayout,null);
TextView resultsiz=(TextView)view.findViewById(R.id.resultsiz);
TextView resultsde=(TextView)view.findViewById(R.id.resultsde);
resultsiz.setText(resultsizq[position]);
resultsde.setText(resultsder[position]);
返回视图;
}
}
受保护的Void doInBackground(Void…参数){
试一试{
Document doc=Jsoup.connect(“http://www.rfebs.es/estadisticas/2017/liga/B_res.php).get();
元素结果=doc.getElementsByClass(“bianco_me”);
如果(result.size()>0){
result1=result.get(1.text();
result2=result.get(2.text();
result3=result.get(3.text();
result4=result.get(4.text();
result5=result.get(5.text();
result6=result.get(6.text();
}
}捕获(例外e){
e、 printStackTrace();
}
返回null;
}
}}

我使用下面的Java代码检索网站徽标

@Override
        protected Void doInBackground(Void... params) {
            try {
// Connect to the web site
                Document document = Jsoup.connect(url).get();
// Using Elements to get the class data
                Elements img = document.select("div[class=header-logo] a[title=AndroidBegin] img[src]");
// Locate the src attribute
                String imgSrc = img.attr("src");
// Download image from URL
                InputStream input = new java.net.URL(imgSrc).openStream();
// Decode Bitmap
                bitmap = BitmapFactory.decodeStream(input);
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
和网站源代码是

<div class="header-logo"><a href="http://www.androidbegin.com/" rel="home" title="AndroidBegin"><img src="http://www.androidbegin.com/wp-content/uploads/2013/04/Web-Logo.png" alt="AndroidBegin" class="header-logo" /></a></div>         
    </div><!-- $header_logo_align -->


doit
类中,您声明了
stringresult1
直到
stringresult6
,然后立即将其当前值(默认值-so
null
)存储在
字符串[]resultsizq={result1,result3,result5,}。这意味着数组中填充了
null
s。即使以后更新
result1
array的值,它仍将保留以前的值。我在下载html后一直在google上搜索如何更新字符串[],但没有找到任何结果。先生,你会怎么做?好的,没关系,修好了。