我尝试使用演示时如何将其拉入我的MainActivity我收到错误"方法getActivity()未定义类型MainActivity"
createRequestSuccessListener()和createRequestErrorListener()也遇到了同样的问题
package com.example.testgetanik;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import com.android.volley.Request.Method;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.Volley;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import com.android.volley.Response.ErrorListener;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Map<String, String> params = new HashMap<String, String>();
params.put("id","1");
params.put("name", "myname");
String url = "http://api.rottentomatoes.com/api/public/v1.0/movies/770672123/cast.json?apikey=3p9ehnhzbxwpbd6mk8fncf67";
RequestQueue requestQueue = Volley.newRequestQueue(getActivity());
CustomRequest jsObjRequest = new CustomRequest(Method.POST,url,params,this.createRequestSuccessListener(),this.createRequestErrorListener());
requestQueue.add(jsObjRequest);
try{
URL urlToRequest = new URL(url);
WebServiceAsyncTask asyncTask = new WebServiceAsyncTask();
asyncTask.execute(urlToRequest);
}catch(MalformedURLException e){
e.printStackTrace();
}
}
@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;
}
}
答案 0 :(得分:9)
尝试以下代码: -
getActivity()
更改为
MainActivity.this
您必须传递活动实例。
答案 1 :(得分:5)
Activity
是Context
,因此当您需要Context
Activity
时,请使用this
。
如果Context
内需要Fragment
,请使用getActivity()
。
答案 2 :(得分:3)
如果您的课程延长Activity
,那么您应该使用this
或activityname.this
或getApplicationContext
来获取背景信息。
如果它从Fragment
延伸,那么您应该使用getActivity()
。
答案 3 :(得分:0)
private Response.Listener<JSONObject> createRequestSuccessListener(){
return new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d(Constants.TAG, "===> Response => "+response.toString());
}
};
}
private Response.ErrorListener createRequestErrorListener(){
return new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d(Constants.TAG, "===> JsonObjectRequest error ");
Log.d(Constants.TAG, error.toString());
}
};
}