2015-07-06 5 views
0

У меня есть социальное приложение, которое строит список автомобилей для пользователей. Каждый пользователь создает свой собственный список. Когда я нажимаю элемент списка, чтобы связать данные автомобиля с данными дилера, я возвращаю нулевое значение в приведенном ниже коде, когда на самом деле я пытаюсь вернуть целочисленное значение, сохраненное в таблице sqlite. Мой код ниже. При необходимости я могу добавить дополнительный код.Значение возврата Null

private Integer d; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_list_cars); 
    Car c = new Car(); 
    this.d = c.getD1(); 
    Log.d("Car","Car: " + d); //<---this brings back Null 
    ... 
    ... 
} 

public class Car implements Serializable { 

public static final String TAG = "Car"; 
private static final long serialVersionUID = -7406082437623008161L; 

private long Id; 
private String mk; 
private String modl; 
private Integer d1; 
private USER xUser; 


public Car() { 
    this.mk=null; 
    this.modl=null; 
    this.d1=null; 



} 


public Car(String make, String model,Integer d1) { 
    super(); 

    this.mk = make; 
    this.modl = model; 
    this.d1 = d1; 




} 


public long getId() { 
    return Id; 
} 
public void setId(long xId) { 
    this.Id = xId; 
} 


public String getMake(){return mk;} 
public void setMake(String make) {this.make = mk;} 

public String getModel(){return modl;} 
public void setModel(String model) {this.model = modl;} 

public Integer getD1(){return d1;} 
public void setD1(Integer d1) {this.d1 = d1;} 

public USER getUser() { 
    return xUser; 
} 
public void setUser(USER yUser) { 
    this.xUser = yUser; 
} 


} 
+0

Где вы называете 'c.setD1'? Если значение по умолчанию в 'Car' для' d' равно null, это имеет смысл. –

ответ

0

Nevermind. Я получил его работу, используя aim.putExtra в предыдущем действии, который передает мой текущий.

0

Когда вы устанавливаете д к c.getD1() это, вероятно, быть установлен в нуль, так как с равен new Car() так что поэтому ни одно из значений в с не заполненным. Поэтому для того, чтобы d, чтобы не быть пустым вы нужно было бы позвонить c.setD1(someValue), если только в классе Car d1 не указано значение по умолчанию, но с кодом, который вы указали, я не знаю точно, но я предполагаю, что вы не присвоили ему значение по умолчанию, и именно поэтому вы получаете нулевое значение ,

+0

Как бы вернуть значение атрибута D1, имеющего данные в таблице sqlite? Нужно ли мне что-то делать с Intent, чтобы передать данные из sqlite обратно в listview? Благодарю. – neo

+0

, пожалуйста, напишите полный автомобиль класса –

+0

. Я добавил свой класс автомобилей в код выше. – neo

0

Значение по умолчанию типа Integer равно null. Если вы не используете функцию set, такую ​​как setD1, когда вы создаете новый объект Car, значение d1 будет равно null. Тогда в вашем основном классе значение d будет ноль.

0

При выполнении конструкции для автомобилей. Вы должны назначить значение по умолчанию для всех значений, чтобы предотвратить «null». Из-за того, что вы назначаете новую конструкцию, задайте все значение равным нулю. Он будет иметь значение null для всех значений в классе автомобилей.

public Car() { 
    this.mk=""; 
    this.modl=""; 
    this.d1=0; 
} 

Это место, в результате чего null.
Автомобиль c = новый автомобиль(); -> значение присвоения конструкции null: this.d = c.getD1(); -> присвоить значение null до this.d
необходимо назначить
c.setD1 (целое число); -> предотвратить null

+0

Я не думаю, что это правильно. Установка его в 0 или нуль просто вернет 0 или null. В чем разница, чтобы установить его на 0? Он по-прежнему возвращает 0 (хотя он имеет целочисленное значение в базе данных). – neo

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