#java #android
#java #Android
Вопрос:
Существует проблема с моим приложением для Android. Мне нужно создать массив разных домов с 4 или 5 атрибутами:
Попытка вызвать виртуальный метод ‘android.os.Bundle android.content.Intent.getExtras()’ при нулевой ссылке на объект
public class ViviendasClass implements Serializable {
public static final Object Viviendas = new Vivienda[1].clone();
Bundle parametros = this.getIntent().getExtras();
private Intent getIntent() { return null; }
String nVivienda;
int mVivienda;
String desVivienda;
String dirVivienda;
float pVivienda;
String urlVivienda;
int numVivienda = 5;
int start = 0;
class Vivienda{
String NombreVivienda;
int medidasVivienda;
String DescripcionVivienda;
String DireccionVivienda;
float PrecioVivienda;
String urlFotoVivienda;
}
public Vivienda nuevaVivienda(){
Vivienda vn = new Vivienda();
vn.NombreVivienda = nVivienda;
vn.medidasVivienda = mVivienda;
vn.DescripcionVivienda = desVivienda;
vn.DireccionVivienda = dirVivienda;
vn.PrecioVivienda = pVivienda;
vn.urlFotoVivienda = urlVivienda;
viviendas.add(vn);
return vn;
}
ArrayList<Vivienda> viviendas = new ArrayList<Vivienda>();
public void ViviendasClass(String args[])
{
//Primera vivienda
Vivienda v1 = new Vivienda();
v1.NombreVivienda = "Casa en venta en Cabrils";
v1.medidasVivienda = 92;...
Комментарии:
1. Можете ли вы показать класс activity
2. Сначала всегда получайте пакеты намерений в
Fragment
илиActivity
, а не вJava
классе. Во- вторых , он возвращает null из-за строкиprivate Intent getIntent() { return null; }
. Вы создали методgetIntent()
в своем коде и возвращаете значение null, аthis.getIntent().getExtras();
эта строка ссылается на созданный вами метод, который всегда возвращает значение null . Удалитеthis
из строкиthis.getIntent().getExtras();
, и она будет работать, и нет необходимости создавать методgetIntent()
.
Ответ №1:
// ExampleClass is your model class which implements Serializable
ExampleClass object = new ExampleClass ();
// using context and next component class to create intent
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.putExtra(“serialize_data”, object);
startActivity(intent);
// Accessing the data passed in other Activity
public class SecondActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// Using getSerializableExtra(String key) method
ExampleClass object = (ExampleClass) getIntent().getSerializableExtra("serialize_data");
}
}
Ответ №2:
Возврат метода GetIntent() null
. Реорганизуйте его примерно так
private Intent getIntent() {
Intent intent = new Intent();
intent.putExtra("KEY_FOR_EXTRA", yourSerilizableModelThatYouTryingToPass);
return intent;
}