public class MainActivity extends ActionBarActivity {
private Context cx;
private int pageNumber=0;
private void populateList() {
AsyncHttpClient client = new AsyncHttpClient();
RequestParams paras = new RequestParams();
paras.put("page",this.pageNumber+1);
............
}
private Button.OnClickListener loadMoreButtonOnClick = new Button.OnClickListener(){
public void onClick(View v){
AsyncHttpClient client = new AsyncHttpClient();
RequestParams paras = new RequestParams();
paras.put("page",this.pageNumber+1); //can't resolve symbol "pageNumnber"
client.get("http://APIAddressHere",paras,new AsyncHttpResponseHandler(){
@Override
public void onSuccess(int statusCode, org.apache.http.Header[] headers, byte[] responseBody){
//it's ok;
}
@Override
public void onFailure(int statusCode, org.apache.http.Header[] headers, byte[] responseBody, Throwable error)
{
// Response failed :(
}
});
}
};
}
내가 코멘트 한 두 번째 함수 (loadMoreButtonOnClick)에서 IDE는 내가 만든 변수 (private int pageNumber)에 액세스 할 수없는 것 같은 오류가 발생합니다.왜 Java 메서드에서 변수를 사용할 수 없습니까?
populateList() 함수에서 pageNumber에 액세스 할 수 있는데, 왜 내가 loadMoreButtonOnClick()에서 액세스 할 수 없는지, 이는 이미 다른 컨텍스트에 있음을 의미합니까?
시스템은 다음과 같습니다 JDK 6, 안드로이드 스튜디오 0.4.2, 내 프로젝트는 API 18
나는 자바에 새로 온 사람에 API 9 일부터입니다. 그래서 내 질문은 :
1. 왜?
2. 해결 방법은 무엇입니까?
빠른 답변을 제공해 주셔서 감사합니다. 이제 작동합니다. 나는 "MainActivity.this.pageNumber"방식을 선호한다. –
또한 다음 주소로 문의하십시오. http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html#shadowing –