-1

I am trying to pass an arraylist between two activities, but my app crashes at the second activity. Can someone help me solve in this problem... Here, I have two parts of my MainActivity from where sending arraylist to another Activity which is BankList Activity

Part 1:
    Intent intent = new Intent(MainActivity.this, BankList.class);
    intent.putStringArrayListExtra("BANKLIST",bankListArrayList);
    startActivity(intent);

Part 2:
    Result<ArrayList<Bank>> banklist = (Result<ArrayList<Bank>>)data;
    if(banklist.getCode().equals("00")){
        Toast.makeText(this,"list Banks success",Toast.LENGTH_SHORT).show();

        bankListArrayList = new ArrayList<>();

        for(Bank bank :banklist.getData()){
            bank.getIin();
            bank.getLogo();
            bank.getName();
            b
            ankListArrayList.add(bank.toString());
        }
        Log.d("BANK_ARRAYLIST","BANK_ARRAYLIST"+bankListArrayList);
        Toast.makeText(this,"BANK_ARRAYLIST"+bankListArrayList,Toast.LENGTH_SHORT).show();

    }

My Second Activity (BankList)

public class BankList extends AppCompatActivity {

    ListView bankList;
    ArrayList<String> bankdataList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_bank_list);

        bankList = (ListView)findViewById(R.id.bankList);

        Intent intent = getIntent();
        intent.getStringArrayListExtra("BANKLIST");
        bankdataList.add(intent.toString());
        Toast.makeText(BankList.this,"bank list"+bankdataList,Toast.LENGTH_SHORT).show();

        ArrayAdapter<String> itemsAdapter = new ArrayAdapter<String>(getApplicationContext(),R.layout.support_simple_spinner_dropdown_item, bankdataList);

        bankList.setAdapter(itemsAdapter);
    }
}

And my Log is :-

11-09 12:58:01.548 1941-1941/com.example.rajdeeps.upi_integration E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.rajdeeps.upi_integration, PID: 1941
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.rajdeeps.upi_integration/com.example.rajdeeps.upi_integration.BankList}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.util.ArrayList.add(java.lang.Object)' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2659)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2724)
        at android.app.ActivityThread.-wrap12(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1473)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6123)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.util.ArrayList.add(java.lang.Object)' on a null object reference
        at com.example.rajdeeps.upi_integration.BankList.onCreate(BankList.java:30)
        at android.app.Activity.performCreate(Activity.java:6672)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1140)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2612)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2724) 
        at android.app.ActivityThread.-wrap12(ActivityThread.java) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1473) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:154) 
        at android.app.ActivityThread.main(ActivityThread.java:6123)
Mahesh Babariya
  • 4,560
  • 6
  • 39
  • 54
rajdeepf1
  • 3
  • 1

2 Answers2

0

You forgot to initialize your bankdataList Arraylist just initialize it

ArrayList<String> bankdataList= new ArrayList();;

Sample code

    public class BankList extends AppCompatActivity {


    ListView bankList;
    ArrayList<String> bankdataList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_bank_list);
        bankdataList= new ArrayList();
        bankList = (ListView)findViewById(R.id.bankList);

        Intent intent = getIntent();
        intent.getStringArrayListExtra("BANKLIST");
        bankdataList.add(intent.toString());
        Toast.makeText(BankList.this,"bank list"+bankdataList,Toast.LENGTH_SHORT).show();

        ArrayAdapter<String> itemsAdapter = new ArrayAdapter<String>(getApplicationContext(),R.layout.support_simple_spinner_dropdown_item, bankdataList);

        bankList.setAdapter(itemsAdapter);


    }
}
Ratilal Chopda
  • 4,162
  • 4
  • 18
  • 31
0

You have not initialize bankdataList before add items.

bankdataList =  new ArrayList<String>();
bankdataList.add(intent.getStringArrayListExtra("BANKLIST"));
Haresh Chhelana
  • 24,720
  • 5
  • 57
  • 67