this 샘플 코드를 사용하여 HorizontalScrollView를 구현하려고합니다. 서버에서 데이터를 가져와야하므로 내 요구 사항에 따라 변경했습니다. 그러나 데이터도 오류도없고 빈 활동도 없습니다. 나는 무엇이 빠졌는지 모른다. 여기, 서버에서 데이터를 얻을 아래 로그 캣 결과를 볼 수 있어요HorizontalScrollView 서버에서 데이터를 가져 오는 중
내 전체 코드입니다 :
MainActivity.java
public class MainActivity extends Activity {
CenterLockHorizontalScrollview centerLockHorizontalScrollview;
ArrayList<Actors> actorsList;
ActorAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
actorsList = new ArrayList<Actors>();
new JSONAsyncTask().execute("http://microblogging.wingnity.com/JSONParsingTutorial/jsonActors");
centerLockHorizontalScrollview = (CenterLockHorizontalScrollview) findViewById(R.id.scrollView);
adapter = new ActorAdapter(getApplicationContext(), R.layout.row, actorsList);
centerLockHorizontalScrollview.setAdapter(MainActivity.this, adapter);
}
class JSONAsyncTask extends AsyncTask<String, Void, Boolean> {
ProgressDialog dialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
dialog = new ProgressDialog(MainActivity.this);
dialog.setMessage("Loading, please wait");
dialog.setTitle("Connecting server");
dialog.show();
dialog.setCancelable(false);
}
@Override
protected Boolean doInBackground(String... urls) {
try {
//------------------>>
HttpGet httppost = new HttpGet(urls[0]);
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(httppost);
// StatusLine stat = response.getStatusLine();
int status = response.getStatusLine().getStatusCode();
if (status == 200) {
HttpEntity entity = response.getEntity();
String data = EntityUtils.toString(entity);
JSONObject jsono = new JSONObject(data);
JSONArray jarray = jsono.getJSONArray("actors");
for (int i = 0; i < jarray.length(); i++) {
JSONObject object = jarray.getJSONObject(i);
Actors actor = new Actors();
actor.setName(object.getString("name"));
Log.d("Name:", object.getString("name"));
actor.setImage(object.getString("image"));
Log.d("Image:", object.getString("image"));
actorsList.add(actor);
}
return true;
}
//------------------>>
} catch (ParseException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return false;
}
protected void onPostExecute(Boolean result) {
dialog.cancel();
adapter.notifyDataSetChanged();
if(result == false)
Toast.makeText(getApplicationContext(), "Unable to fetch data from server", Toast.LENGTH_LONG).show();
}
}
}
로그 캣
10-01 07:28:12.380: I/Process(582): Sending signal. PID: 582 SIG: 9
10-01 07:29:11.280: D/gralloc_goldfish(636): Emulator without GPU emulation detected.
10-01 07:29:12.979: D/Name:(636): Brad Pitt
10-01 07:29:12.979: D/Image:(636): http://microblogging.wingnity.com/JSONParsingTutorial/brad.jpg
10-01 07:29:12.979: D/Name:(636): Tom Cruise
10-01 07:29:12.979: D/Image:(636): http://microblogging.wingnity.com/JSONParsingTutorial/cruise.jpg
10-01 07:29:12.979: D/Name:(636): Johnny Depp
10-01 07:29:13.009: D/Image:(636): http://microblogging.wingnity.com/JSONParsingTutorial/johnny.jpg
10-01 07:29:13.009: D/Name:(636): Angelina Jolie
10-01 07:29:13.019: D/Image:(636): http://microblogging.wingnity.com/JSONParsingTutorial/jolie.jpg
10-01 07:29:13.019: D/Name:(636): Tom Hanks
10-01 07:29:13.019: D/Image:(636): http://microblogging.wingnity.com/JSONParsingTutorial/tom.jpg
10-01 07:29:13.019: D/Name:(636): Will Smith
10-01 07:29:13.019: D/Image:(636): http://microblogging.wingnity.com/JSONParsingTutorial/will.jpg
먼저 확인하면 서버에서 모든 데이터를 받고에서해야 하는가? – Piyush
그리고'onPostExecute()'메소드에서'UI'를 업데이트해야합니다. 'onPostExecute()'메소드에서 어댑터를 설정한다. – Piyush