gridView에 이미지를 표시하려고합니다. 이 이미지는 ElasticSearch 서버에 대한 연구 결과입니다. 사용자가 텍스트 필드에 키워드를 지정하면 ElasticSearch의 쿼리 결과는 문자열 목록 (이미지 URL)이며 이미지는 gridView에 표시됩니다.asynctask로 "예약"프로그램?
내가 연구하게하기 위해 버튼을 누르면 동작 :
public void sendMessage(View view){
imgAdapter.clearmThumbIds(); //mThumbs is a list of string (urls image)
gridView = (GridView) findViewById(R.id.grid_view);
EditText editText = (EditText) findViewById(R.id.searchBar);
String message = editText.getText().toString();
try {
eSearchElastic.ESE(imgAdapter,message);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Etape 2");
gridView.setAdapter(imgAdapter);
}
eSearchElastic.java
public static void ESE (final ImageAdapter imgAdapter,final String keyword)throws ClientProtocolException, IOException {
AsyncTask<Void, Void, Void> task = new AsyncTask<Void, Void, Void>(){
@Override
protected Void doInBackground(Void... params) {
//Build the query, connect to ElasticServer and receive a list or urls of image as answer
System.out.println("Etape 1");
return null;
}
};
task.execute();}
그리고 Etape1 전에이 인쇄 Etape2의 결과를 내가이 줄을 싶습니다 "gridView.setAdapter (imgAdapter)"는 eSearchElastic의 백그라운드 프로세스/스레드가 완료된 후에 만 실행됩니다. 어떻게하면됩니까?
내가 추가 할 때 방법 onPostExecute(), I는 경고가 : "방법 AsyncTask를에서 onPostExecute()가 <무효가 무효가 무효가> 로컬로 사용되지 않습니다"를? – GermainGum
Void 매개 변수가 있는지 확인하십시오. onPostExecute (Void result) {} – Hexar
Thx 이제 작동하지만 void 매개 변수와이 줄이 필요한 이유를 모르겠습니다. super.onPostExecute (result); – GermainGum