Не удалось получить данные с сервера даже у меня есть значение в textview
согласно моему состоянию в onCreate()
и когда я удалить это условие это works
просто отлично для меня (моего среднего, в этом случае я am able to fetch JSON data
с сервера).Невозможно получить данные в формате JSON от сервера
и я пробовал много вещей, но до сих пор не успеха для меня, всегда получает "Unable to fetch data from server"
потому что я использовал это как Тост в onPostExecute()
методы AsyncTask
Я получаю value
для TextView и это точно его вызывающих execute
метода из AsyncTask как хорошо, но всегда получаю Не удается получить данные с сервера
у вас есть вопросы в вашем уме:
1) Почему я использую такое условие в onCreate()
, а затем проверить этот мой question
2) Почему я установка адаптера в onPostExecute()
, а затем проверить мой этот question
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_category);
etTextToSave = (TextView) findViewById(R.id.textView2);
sharedprefs = getSharedPreferences("MyPrefs", MODE_PRIVATE);
etTextToSave.setText(sharedprefs.getString("SharedPrefsData",""));
actorsList = new ArrayList<VideoCategory>();
if(etTextToSave.getText().toString().length()>0)
{
new JSONAsyncTask().execute("http://microblogging.wingnity.com/JSONParsingTutorial/jsonActors");
}
centerLockHorizontalScrollview = (HSVActivity) findViewById(R.id.scrollView);
}
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();
if(result == false)
Toast.makeText(getApplicationContext(), "Unable to fetch data from server", Toast.LENGTH_LONG).show();
if(actorsList != null) {
adapter = new VideoCategoryAdapter(getApplicationContext(), R.layout.adapter_video_category, actorsList);
centerLockHorizontalScrollview.setAdapter(HomeActivity.this, adapter);
}
}
}
Что вы получаете в 'String data = EntityUtils.toString (entity);' строка с сервера? –
@ ρяσѕρєяK, что трудно мне сказать, потому что мое приложение слишком сложно, поэтому я использую реальное устройство, и когда я подключу свое реальное устройство к системе, оно не подходит для тестирования приложения, поэтому я тестирую свое приложение, apks .. но, пожалуйста, попробуйте помочь мне, я все объяснил – Sophie
ok создать временный файл на SDCard для проверки ответа с сервера. –