У меня есть 3 ДеятельностьПолучение NullPointer Исключение при переключении между процессами
Activity1 Avtivity2 Activity3
Здесь Кодекс:
Activity1:
Intent intent= new Intent(Activity1.this,Acivity2.class);
Bundle b=new Bundle();
b.putParcelableArrayList("actionArray", (ArrayList<? extends Parcelable>) AllListArray.get(0));
b.putParcelableArrayList("comedyArray", (ArrayList<? extends Parcelable>) AllListArray.get(1));
intent.putExtras(b);
startActivity(intent);
деятельности2:
//get the Bundle of movie category data data from previous activity
Bundle recdData = getIntent().getExtras();
actionArray=recdData.getParcelableArrayList("actionArray");
comedyArray=recdData.getParcelableArrayList("comedyArray");
public void btnClicker(View v)
{
Intent i= new Intent(getApplicationContext(), Activity3.class);;
Bundle b=new Bundle();
switch(v.getId())//get the button label id from respective View
{
case R.id.actionBtn:
b.putParcelableArrayList("movieCategorie", (ArrayList<? extends Parcelable>) actionArray);
b.putString("movieCategorieDisplay","Action Movies");
i.putExtras(b);
startActivity(i);
break;
case R.id.comedyBtn:
b.putParcelableArrayList("movieCategorie", (ArrayList<? extends Parcelable>) comedyArray);
b.putString("movieCategorieDisplay","Comedy Movies");
i.putExtras(b);
startActivity(i);
break;
Activity3:
backButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent i = new Intent(getBaseContext(), Acivity2.class);
i.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
CategoryListView.this.startActivity(i);
}
});
Проблема, когда я нажимаю на BackButton (на Mobile BackButton) в моем Activity3 несколько раз Getting NullPionterException
за исключением точек в этой линии в деятельности2
actionArray=recdData.getParcelableArrayList("actionArray");
Может ли кто-нибудь мне помочь?
Поместите этот код в блок try/catch, проблема будет решена. –
@pratik, как он решит проблему? – Raghunandan
Это произойдет, потому что когда вы переключитесь назад, вы получили нулевые данные в своих массивах, какие данные Bundle вы получаете там. Таким образом, вы можете поместить туда нулевую проверку или вам нужно поставить блок try/catch. Таким образом, приложение не будет разбито, и исключение будет запущено. –