Почему это возвращает нуль, когда строка устанавливается внутри методов, которые анализируют JSON? (Нижние возвраты все нулевые) - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь использовать API для извлечения данных и помещения их в TextViews внутри фрагмента.Я уже могу получить данные из JSON нормально, но при попытке вернуть значения они равны нулю.

public class Handler {
String pName;
String pPosition;
String pTeam;
String pDivision;
String pConf;

//getName gets the players first and last name concats them and returns the string
public String getName(String nameJsonStr) throws JSONException {
    JSONObject nameJSONObj = new JSONObject(nameJsonStr);
    String fullName = (nameJSONObj.getString("first_name")) + " " + (nameJSONObj.getString("last_name"));
    pName = fullName;
    return pName;
}

//gets the player's position from JSON
public String getPosition(String positionJsonStr) throws JSONException {
    JSONObject positionJSONObj = new JSONObject(positionJsonStr);
    pPosition = positionJSONObj.getString("position");
    return pPosition;
}

//gets player's team from JSON
public String getTeam(String teamJsonStr) throws JSONException {
    JSONObject teamJSONObj = new JSONObject(teamJsonStr);
    pTeam = teamJSONObj.getJSONObject("team").getString("full_name");
    return pTeam;
}

//gets player's division from JSON
public String getDivision(String divisionJsonStr) throws JSONException {
    JSONObject divisionJSONObj = new JSONObject(divisionJsonStr);
    pDivision = divisionJSONObj.getJSONObject("team").getString("division");
    return pDivision;
}

//gets player's conference from JSON
public String getConference(String conferenceJsonStr) throws JSONException {
    JSONObject conferenceJSONObj = new JSONObject(conferenceJsonStr);
    pConf = conferenceJSONObj.getJSONObject("team").getString("conference");
    return pConf;
}

public String getpName(){return pName;}
public String getpPosition(){return pPosition;}
public String getpTeam(){return pTeam;}
public String getpDivision(){return pDivision;}
public String getpConf(){return pConf;}
}

Они должны возвращать сохраненные значения из методов получения JSON

1 Ответ

0 голосов
/ 12 апреля 2019

вам нужно вызвать методы, которые устанавливают ваши переменные.

Когда вы пишете

 public String getpName(){return pName;}

, вы возвращаете неинициализированную переменную экземпляра (pName) из верхней части вашего скрипта:

 String pName;

Неинициализированный экземпляр Stringпеременные по умолчанию равны нулю (String pName = null)

Вместо этого вам нужно изменить свой код следующим образом:

 public String getpName(String nameJsonStr){
    // return the value returned by getName()
    return getName(nameJsonStr);//pass in the nameJsonStr to the getName() method
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...