2016-04-04 7 views
0

Я звоню метод в OnCreate следующимдоступа значение строки из попытаться поймать блок

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.game); 
    GetScore(); 

Метод определяется здесь

private void GetScore() { 
    AsyncHttpClient client = new AsyncHttpClient(); 
    RequestParams params = new RequestParams(); 
    params.put("email", textEmail); 
    client.get("http://techcube.pk/game/getScore.php", params, new `enter code here`AsyncHttpResponseHandler() { 

      @Override 
      public void onSuccess(String s) { 
       super.onSuccess("Success"); 
       String score = null; 
       try 
       { 
        Log.d("Success", s); 
        JSONObject json = new JSONObject(s); 
        score = json.getString("Score"); 


       } 


       catch (Exception e) 
       { 
        e.printStackTrace(); 
       } 
       //Toast.makeText(getApplicationContext(), score, Toast.LENGTH_LONG).show(); 
       fetchlivescore.setText(score); 
      } 
      @Override 
      public void onFailure(Throwable throwable) { 
       super.onFailure(throwable); 
       Toast.makeText(getApplicationContext(), "Server Response for onFailure ", Toast.LENGTH_LONG).show(); 
      } 
     }); 

} 

Теперь то, что я хочу делать то, что я хранить значение json string в fetchlivescore textview внутри метода onSuccess , но я хочу использовать это значение также в методе Oncreate, то есть, когда я открою приложение в следующий раз, он покажет тост или текстовое представление, содержащее то же значение, которое было сохранено в методе Onsuccess. Как я могу это достичь? я пробовал много вещей, но ничего не работает, потому что сохраненное значение не отображается в следующий раз в методе oncreate, и оно всегда отображается пустым

ответ

0

Один из способов сохранить оценку - использовать SharedPreferences в вашем методе onSuccess().

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); 
SharedPreferences.Editor editor = sharedPref.edit(); 
editor.putString("key_score", score); 
editor.commit(); 

И в onCreate() вы просто прочитать значение, хранящееся.

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); 
String score = sharedPref.getString("key_score"); 

Если вы внутри деятельности - использовать this вместо getActivity().

+0

ok позвольте мне попробовать этот сэр –

+0

iT WORKS tHANKYOU Sir –

0

Я бы использовал SharedPreferences. Это ключевое значение, хранящееся, и содержимое сохраняется поверх перезапуска приложений.

+0

Я думаю, что я не был в состоянии объяснить проблему полностью –

+0

в проблема в том, что я не могу получить доступ к этому значению, т.е. fetchlivescore textview вне этого метода почему? –

+0

@ArslanAli Как вы объявляете поле 'fetchlivescore'? –

0

Вам нужно сохранить это значение где-нибудь, если вы хотите его получить позже. Если это только одно значение, может быть SharedPreferences является решением:

SharedPreferences prefs = getSharedPreferences("preferences...", Context.MODE_PRIVATE); 
SharedPreferences.Editor editor = prefs.edit(); 
editor.putString("score", score); 
editor.commit(); 

И в onResume вы можете установить TextView что-то вроде:

SharedPreferences prefs = getSharedPreferences("preferences...", Context.MODE_PRIVATE); 
textView.setText(prefs.getString("score","")); 
+0

Thankyou Sir для помощи –

Смежные вопросы