2017-01-27 18 views
-1

я создал класс Pojo .. где я хранить данные, которые я получаю от апи ..В андроиде моего экземпляра класса POJO получает нулевое значение

В MainActivity.java я использую loopj для разбора JSON данных

storeList = new ArrayList<AllStore>(); 
       try { 
        JSONArray jsonArray = new JSONArray(new String(responseBody)); 
        for (int i = 0; i < jsonArray.length(); i++) { 
         store = new AllStore(); 

         store.setLocation(jsonArray.getJSONObject(i).getString("storeName")); 
         store.setAddress(jsonArray.getJSONObject(i).getString("address")); 

мой POJO класс

AllStore.java

public class AllStore{ 

String storeName; 
String address; 

public AllStore(String storeName, String address){ 
this.storeName= storeName; 
this.location = location; 
} 

public AllStore{ 

} 

public String getLocation() { 
     return location; 
    } 

    public void setLocation(String location) { 
     this.location = location; 
    } 

public String getStoreName() { 
     return storeName; 
    } 

    public void setStoreName(String storeName) { 
     this.storeName = storeName; 
    } 

} 

В других Java с дивчины .. а затем переходник класса, когда я делаю

AllStore allStore = new Allstore(); 

mText.setText(allStore.getStoreName); 

Здесь allStore.getStoreName значение пустого показа .. как решить эту проблему ..

Пожалуйста, помогите

+4

Используйте отладчик, кстати this.location = location; в то время как в конструкторе нет имени с параметром. – maszter

+0

Существует несколько проблем с кодом, который вы указали здесь. Он даже не компилируется. – lupz

+0

почему @lupz ?? его компиляция –

ответ

2
AllStore allStore = new Allstore(); 

mText.setText(allStore.getStoreName()); 

Здесь вы создание нового объекта Allstore со стандартным конструктором

public AllStore{ 

} 

Если вы позвоните по телефону .getStoreName он вернет null, потому что вы не задали никаких условий.

В другом методе, вы должны добавить объект магазин в тэ списка массива

store.setLocation(jsonArray.getJSONObject(i).getString("storeName"));   
store.setAddress(jsonArray.getJSONObject(i).getString("address")); 
storeList.add(store); 

Позже, если вы хотите использовать имя элемента в списке, вы можете сделать:

mText.setText(storelist.get(index).getStoreName()); 

Где index - позиция в списке объекта.

+0

да я добавил storeList.add (store); в mainActivity .. Я использую этот текст в очень разных классах .. так как я получу там storelist.get (position) postion i can not get r8 ?? –

+0

вам нужно получить объект, в котором вы хотите использовать, в этом случае хранитель должен быть отправлен классу. Вы можете создать задачу Async, чтобы получить элементы из json и поместить в хранилище, а затем вернуть его туда, где вам это нужно. –

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

  • Нет связанных вопросов^_^