0

jsoup を使用して Web サイトから文字列を返し、文字列を textview で表示しようとしていますが、このエラーが発生しました

メソッド findViewById(int) は型フェッチャーに対して未定義です

私のコードは:

public class Second extends Activity {

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



}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_second, menu);
    return true;
}

public void Iqama (View view) throws IOException
{
    //Document doc = Jsoup.connect("http://google.com/").get();
    new fetcher().execute();
}

}

クラス fetcher extends AsyncTask{ String myString = null;

 @Override
    protected Void doInBackground(Void... arg0) { 
        Document doc = null;

        try {
            doc = Jsoup.connect("http://www.ismmusalla.org/").get();
            Elements divs = doc.select("div#title1");


                for (Element div : divs) {
                    myString=myString+" " +div.text();
                      }



        }
        catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;

}

 protected void onPostExecute(String result)
 {
     TextView textview=(TextView)findViewById(R.id.textView1);
     textview.setText(myString);

 }

}

手伝っていただけませんか ????

4

1 に答える 1

0

アクティビティに設定されている現在のビュー階層のViewByIdを見つけることができます。

textview をクラス変数として宣言します。

onCreate() で

    textview=(TextView)findViewById(R.id.textView1);

アクティビティ クラスの asynctask 内部クラスを作成します。

public class Second extends Activity {

TextView textview;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);
    textview=(TextView)findViewById(R.id.textView1); 
    new fetcher().execute();    
}


 class fetcher extends AsyncTask<Void,Void,Void>{
 String myString = null;
 @Override
    protected Void doInBackground(Void... arg0) { 
        Document doc = null;

        try {
            doc = Jsoup.connect("http://www.ismmusalla.org/").get();
            Elements divs = doc.select("div#title1");
                for (Element div : divs) {
                    myString=myString+" " +div.text();
                      }
        }
        catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
}
 @Override
 protected void onPostExecute(void result)
 {
     textview.setText(myString);

 }
}
}
于 2013-06-12T04:49:18.967 に答える