Java 无法解析符号';执行'。。。调用异步任务
我试图对URL发出Java 无法解析符号';执行'。。。调用异步任务,java,android,android-asynctask,Java,Android,Android Asynctask,我试图对URL发出GET请求,我创建了一个扩展AsyncTask的类,并尝试调用new MyClass.execute()。。。我以前做过这件事,但它奏效了,今天它不起作用了。我做错了什么 这是我的密码: public class SignUpActivity extends AppCompatActivity { String TAG = SignUpActivity.class.getSimpleName(); String URL; ArrayList<String> co
GET
请求,我创建了一个扩展AsyncTask
的类,并尝试调用new MyClass.execute()
。。。我以前做过这件事,但它奏效了,今天它不起作用了。我做错了什么
这是我的密码:
public class SignUpActivity extends AppCompatActivity {
String TAG = SignUpActivity.class.getSimpleName();
String URL;
ArrayList<String> countries = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sign_up);
new MyClass.execute();
}
private class MyClass extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
//TODO
}
@Override
protected Void doInBackground(Void... params) {
HttpHandler sh = new HttpHandler();
// Making a request to url and getting response
String jsonStr = sh.makeServiceCall(URL, "GET");
//Handling response in jsonStr code
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
//TODO
}
}
公共类注册活动扩展了AppCompatActivity{
String TAG=SignUpActivity.class.getSimpleName();
字符串URL;
ArrayList国家/地区=新的ArrayList();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u注册);
新建MyClass.execute();
}
私有类MyClass扩展了异步任务{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
//待办事项
}
@凌驾
受保护的Void doInBackground(Void…参数){
HttpHandler sh=新的HttpHandler();
//向url发出请求并获得响应
字符串jsonStr=sh.makeServiceCall(URL,“GET”);
//处理jsonStr代码中的响应
返回null;
}
@凌驾
受保护的void onPostExecute(void结果){
super.onPostExecute(结果);
//待办事项
}
}
使用此项获取数据,使用返回值返回:
public class SignUpActivity extends AppCompatActivity {
String TAG = SignUpActivity.class.getSimpleName();
String URL;
ArrayList<String> countries = new ArrayList<>();
String jsonStr="";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sign_up);
String response = new MyClass.execute();
}
private class MyClass extends AsyncTask<Void, Void, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
//TODP
}
@Override
protected String doInBackground(Void... params) {
HttpHandler sh = new HttpHandler();
// Making a request to url and getting response
String jsonStr = sh.makeServiceCall(URL, "GET");
//Handling response in jsonStr code
return jsonStr;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
//TODO
jsonStr = result;
}
}
}
公共类注册活动扩展了AppCompatActivity{
String TAG=SignUpActivity.class.getSimpleName();
字符串URL;
ArrayList国家/地区=新的ArrayList();
字符串jsonStr=“”;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u注册);
String response=new MyClass.execute();
}
私有类MyClass扩展了异步任务{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
//托德
}
@凌驾
受保护字符串doInBackground(无效…参数){
HttpHandler sh=新的HttpHandler();
//向url发出请求并获得响应
字符串jsonStr=sh.makeServiceCall(URL,“GET”);
//处理jsonStr代码中的响应
返回jsonStr;
}
@凌驾
受保护的void onPostExecute(字符串结果){
super.onPostExecute(结果);
//待办事项
jsonStr=结果;
}
}
}
这是一个语法错误。应该是
新建MyClass().execute()
不建议使用新的MyClass.execute();只使用代码的答案。您应该解释问题、所做的更改以及它们如何解决问题。不建议使用只使用代码的答案。您应该解释问题、所做的更改以及它们如何解决问题。此外,您的
doInBackground(…)
-method中有一个悬而未决的catch
。请更准确地回答。您忽略了(语义上重要的)新的。
public class JsonHandler {
static String response = null;
public final static int GET = 1;
public final static int POST = 2;
public JsonHandler() {
}
public String makeServiceCall(String url,int method) {
return this.makeServiceCall(url, method, null);
}
public String makeServiceCall(String url, int method,
List<NameValuePair> params) {
try {
// http client
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpEntity httpEntity = null;
HttpResponse httpResponse = null;
// Checking http request method type
if (method == POST) {
HttpPost httpPost = new HttpPost(url);
if (params != null) {
httpPost.setEntity(new UrlEncodedFormEntity(params));
}
httpResponse = httpClient.execute(httpPost);
} else if (method == GET) {
if (params != null) {
String paramString = URLEncodedUtils.format(params, "utf-8");
url += "?" + paramString;
}
HttpGet httpGet = new HttpGet(url);
httpResponse = httpClient.execute(httpGet);
}
httpEntity = httpResponse.getEntity();
response = EntityUtils.toString(httpEntity);
} catch (Exception e) {
}
return response;
}
}
@Override
protected Void doInBackground(String... params) {
// TODO Auto-generated method stub
JsonHandler json = new JsonHandler();
String jsonStr = json.makeServiceCall(params[0], JsonHandler.GET);
// parse your json data here
}