gpt4 book ai didi

java - Asynctask 和 doInBackground 错误

转载 作者:行者123 更新时间:2023-12-02 06:30:15 25 4
gpt4 key购买 nike

我已经遵循了一些我认为完全正确的指南和其他问题,但我有一个无法修复的错误。

反对这条线

private class loadNotams extends AsyncTask<String, Void, Void> {

我收到此错误

The type MainActivity.loadNotams must implement the inherited abstract method AsyncTask.doInBackground(String...)

并反对这条线

protected Void doInBackground(String airfield) {

我收到此错误:

The method doInBackground(String) of type MainActivity.loadNotams must override or implement a supertype method

这里的任何想法都是我的整个代码:

import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

TextView testText;
Notam[] notamList = new Notam[100];

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Document doc = null;

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

new loadNotams().execute("ybmk");
}

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

private class loadNotams extends AsyncTask<String, Void, Void> {

@Override
protected Void doInBackground(String airfield) {
Document doc = null;

try {
doc = Jsoup
.connect(
"https://pilotweb.nas.faa.gov/PilotWeb/notamRetrievalByICAOAction.do?method=displayByICAOs")
.data("retrieveLocId", airfield)
.data("formatType", "ICAO")
.data("reportType", "REPORT")
.data("actionType", "notamRetrievalByICAOs")
// .userAgent("Mozilla")
// .cookie("auth", "token")
.timeout(3000).post();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int counter = 0;
Elements pre = doc.select("pre");

for (Element link : pre) {

// get the value from href attribute
System.out.println("text : " + link.text());
notamList[counter++] = new Notam(airfield, link.text()
.substring(0, 8), link.text().substring(11,
link.text().length()));

}
counter--;
while (counter >= 0) {
System.out.println("class : " + notamList[counter].identifier
+ "#" + notamList[counter].notamText);
counter--;
}
testText.setText(notamList[0].notamText);
return null;
}
}

}

最佳答案

改变

 protected Void doInBackground(String airfield)

 protected Void doInBackground(String... airfield)

 protected Void doInBackground(String[] airfield)

因为 doInBackground() 方法需要字符串数组作为参数

并更改为

   try {
doc = Jsoup
.connect(
"https://pilotweb.nas.faa.gov/PilotWeb/notamRetrievalByICAOAction.do?method=displayByICAOs")
.data("retrieveLocId", airfield[0])
.data("formatType", "ICAO")
.data("reportType", "REPORT")
.data("actionType", "notamRetrievalByICAOs")
// .userAgent("Mozilla")
// .cookie("auth", "token")
.timeout(3000).post();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

关于java - Asynctask 和 doInBackground 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20139695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com