String name;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getData();
this.setText(name);
}
private void getData(){
name = object.getString("name");
}
我只是將我的代碼行縮短了,無論如何,這個想法已經存在了。所以在方法getData()
我從網上檢索數據。我能夠測試並能夠得到結果,但是當我把名稱放在onCreate()
上時,它給了我一個空值。如何解決這個問題呢?當試圖從方法中檢索數據時,變量返回null
public class Testing extends NavigationLiveo{
String name;
@Override
public void onInt(Bundle savedInstanceState) {
getData();
Log.wtf("name0", name);
this.username.setText(name);
}
private void getData() {
RequestQueue queue = Volley.newRequestQueue(getApplicationContext());
StringRequest sr = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>() {
@Override
public void onResponse(String s) {
try {
name = object.getString("name");
Log.wtf("name1", name);
} catch (Exception e) {
Log.wtf("testing1", e.getMessage());
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> params = new HashMap<String, String>();
params.put("user", user_pid);
return params;
}
};queue.add(sr);
}
}
再次,我讓我的編碼變得簡單。我真的可以從Web服務器獲取數據。只是,只要我嘗試訪問onInt(Bundle savedInstanceState)上的名稱,它就會返回一個空值。日誌也說明了這一點。 「name1」返回一個值,而「name0」返回null。
在Log object.getString(「name」);中打印此值。有一個機會,這將從網絡 – Amsheer
顯示你的所有代碼爲空。您需要等待數據從webserives返回。然後設置它。 –
@Amsheer日誌「name1」將顯示在Web上檢索的數據,但在日誌「name0」上它將顯示爲空。 – fmpsagara