无法应用ProcessDialog

时间:2017-02-27 02:09:12

标签: android progress-bar jsoup

我想获取HTML页面,但我确实没有。

CikmisSorular.class

         class CikmisSorular extends AsyncTask<Void,Void,Void>
               {
             String URL="http://www.utercih.com/rehberlik.aspx";
               String aciklama;
               String veri;
             ProgressDialog dialog;
TextView txtWeb;
@Override
protected  void onPreExecute()
{
    super.onPreExecute();
    dialog=new ProgressDialog(Anasayfa.class);
    dialog.setTitle("Jsoup Uygulama.");
    dialog.setMessage("Veri getiriliyor");
    dialog.setIndeterminate(false);
    dialog.show();
}
@Override
protected Void doInBackground(Void... params) {
    try {
        Document doc= Jsoup.connect(URL).get();//Siteye bağlantı sağlanıyor.
        Elements elements=doc.select("div[class=detayici]");//div tagına ait attiribute çağrılıp Element sınfının içerisindeki nesneye aktarılıyor.
        //elements.select("p");//elements nesnesi içindeki p tagları çağırılıyor.
        //elements.select("img").remove();//elements nesnesi içindeki img tagları siliniyor.
        veri=elements.html();//istenilen html taglarını çeker.
        aciklama=Jsoup.parse(veri).text();//html taglarını texte çevirir.
    } catch (IOException e) {
        e.printStackTrace();
    }
    return null;
}
@Override
protected void onPostExecute(Void avoid)
{

    txtWeb.setText(aciklama);
    dialog.dismiss();
}
           }

我告诉图片错误

enter image description here

enter image description here

Anasayfa.class

package com.yavuzoktay.derszamani;


  import android.content.Context;
     import android.content.Intent;
  import android.os.Bundle;
        import android.support.v4.app.Fragment;
      import android.view.LayoutInflater;
                                import android.view.View;
     import android.view.ViewGroup;
       import android.widget.Button;
         import android.widget.TextView;
             import android.widget.Toast;
         import org.jsoup.Jsoup;
             import org.jsoup.nodes.Document;
           import org.jsoup.nodes.Element;
        import org.jsoup.select.Elements;
             import org.w3c.dom.Text;

           import android.os.AsyncTask;


   /**
                        * A simple {@link Fragment} subclass.
             */
        public class Anasayfa extends Fragment implements View.OnClickListener {


public Anasayfa() {
    // Required empty public constructor
           }
 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View v = inflater.inflate(R.layout.fragment_anasayfa, container, false);

    Button btn1=(Button)v.findViewById(R.id.btn_hedefim) ;
    Button btn2=(Button)v.findViewById(R.id.btn_cikmisSoru) ;
    Button btn3=(Button)v.findViewById(R.id.btn_sinavaNeKadar) ;
    Button btn4=(Button)v.findViewById(R.id.btn_kronometre) ;



    btn1.setOnClickListener(this);
    btn2.setOnClickListener(this);
    btn3.setOnClickListener(this);
    btn4.setOnClickListener(this);

    return  v ;
}

@Override
public void onClick(View view) {
    switch (view.getId()){
        case R.id.btn_hedefim:
            Intent intent = new Intent(getActivity(), Hedefim.class);
            startActivity(intent);
            break;
        case R.id.btn_cikmisSoru:
            new CikmisSorular().execute();
            break;
        case R.id.btn_sinavaNeKadar:
            Intent intent2 = new Intent(getActivity(), SinavaKalanGun.class);
            startActivity(intent2);
            break;
        case R.id.btn_kronometre:
            Intent intent3 = new Intent(getActivity(), Kronometre.class);
            startActivity(intent3);
            break;

    }
}

private Context getApplicationContext() {
    return null;
 }
         }

我不知道如何解决它。

1 个答案:

答案 0 :(得分:0)

因为ProgressDialog需要Context而不是class。因此,您必须为AsyncTask创建一个构造函数,然后从Anasayfa.class传递Context。

例如:将其放在CikmisSorular

Context mContext;
CikmisSorular(Context c){
this.mContext = c;
}

使用:

dialog=new ProgressDialog(mContext);

Anasayfa.class

中使用
case R.id.btn_cikmisSoru:
    new CikmisSorular(Anasayfa.this).execute();
    break;