1

Basically I have three fragments in viewpager creating a tabbed activity. I have a button "GotoCart" in my Main activity named as "SecondActivity".The working of that button is that when it is clicked it moves to a new Activity named as "Cart". In cart I have an ListView which is getting its data from three different ArrayList individually exists in each Fragment.Now the issue is that when I clicked on "GoToCart" button first Two fragments ArrayLists gets initialized and putt their data in FinalList but it shows error for Screen Shot of error third fragment that the "arrayList is not initialized".Working for first two fragments but not for third i don't understand what's the issue is. Please Help!!!. Following is the third fragment .java file.

public class FragSandwitch extends Fragment implements View.OnClickListener,Serializable{
Button btnadd1,btnadd2,btnadd3,btnadd4,btnadd5;
static ArrayList<SingleCartItem> sandwichList;
String x,y;
TextView itemName,price;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
    final View myView = inflater.inflate(R.layout.frag_sandwich, container, false);
    btnadd1=(Button)myView.findViewById(R.id.sandwich1_btn_add);
    btnadd2=(Button)myView.findViewById(R.id.sandwich2_btn_add);
    btnadd3=(Button)myView.findViewById(R.id.sandwich3_btn_add);
    btnadd4=(Button)myView.findViewById(R.id.sandwich4_btn_add);
    btnadd5=(Button)myView.findViewById(R.id.sandwich5_btn_add);

    sandwichList = new ArrayList<SingleCartItem>();

    btnadd1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if(btnadd1.getText().toString().equals("+ADD")) {
                itemName = (TextView) myView.findViewById(R.id.sandwich1_txt_name);
                price = (TextView) myView.findViewById(R.id.sandwich1_txt_price);
                x = (String) itemName.getText();
                y = (String) price.getText();
                sandwichList.add(new SingleCartItem(x, y));
                btnadd1.setText("Added to Cart");
            }
        }
    });
    btnadd2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (btnadd2.getText().toString().equals("+ADD")) {
                itemName = (TextView) myView.findViewById(R.id.sandwich2_txt_name);
                price = (TextView) myView.findViewById(R.id.sandwich2_txt_price);
                x = (String) itemName.getText();
                y = (String) price.getText();
                sandwichList.add(new SingleCartItem(x, y));
                btnadd2.setText("Added to Cart");
            }

        }

    });
    btnadd3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (btnadd3.getText().toString().equals("+ADD")) {
                itemName = (TextView) myView.findViewById(R.id.sandwich3_txt_name);
                price = (TextView) myView.findViewById(R.id.sandwich3_txt_price);
                x = (String) itemName.getText();
                y = (String) price.getText();
                sandwichList.add(new SingleCartItem(x, y));
                btnadd3.setText("Added to Cart");
            }
        }

    });
    btnadd4.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (btnadd4.getText().toString().equals("+ADD")){
                itemName = (TextView) myView.findViewById(R.id.sandwich4_txt_name);
                price = (TextView) myView.findViewById(R.id.sandwich4_txt_price);
                x = (String) itemName.getText();
                y = (String) price.getText();
                sandwichList.add(new SingleCartItem(x, y));
                btnadd4.setText("Added to Cart");
            }
        }

    });
    btnadd5.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if(btnadd5.getText().toString().equals("+ADD")){
                itemName = (TextView) myView.findViewById(R.id.sandwich5_txt_name);
                price = (TextView) myView.findViewById(R.id.sandwich5_txt_price);
                x=(String)itemName.getText();
                y=(String)price.getText();
                sandwichList.add(new SingleCartItem(x,y));
                btnadd5.setText("Added to Cart");
            }
        }
    });
    return myView;
}
@Override
public void onClick(View v) {

}

this is the "SecondActivity" Code for "onClick" of "GoToCart" button.

public void goToCart(View view) {


    for (int i=0;i<FragBurger.burgerList.size();i++)//working
        finalList.add(FragBurger.burgerList.get(i));

    for (int i=0;i<FragPizza.pizzaList.size();i++)//working
        finalList.add(FragPizza.pizzaList.get(i));

    for (int i=0;i<FragSandwitch.sandwichList.size();i++)//Error
        finalList.add(FragSandwitch.sandwichList.get(i));
    Intent goToCart=new Intent(SecondActivity.this,Cart.class);
    Bundle args = new Bundle();
    args.putSerializable("ARRAYLIST",(Serializable)finalList);
    goToCart.putExtra("BUNDLE",args);
    startActivity(goToCart);
}

"Cart" Activity:

public class Cart extends AppCompatActivity implements View.OnClickListener{

ArrayList<SingleCartItem> arrayList;
ListView listView;
TextView quantity;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.cart);
    getSupportActionBar().setTitle("Cart");
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    listView=(ListView)findViewById(R.id.added_list_items);
    Intent intent = getIntent();
    Bundle args = intent.getBundleExtra("BUNDLE");
    arrayList = (ArrayList<SingleCartItem>) args.getSerializable("ARRAYLIST");
    MyAdapterView my_adapter_view=new MyAdapterView( getApplicationContext(),arrayList);
    my_adapter_view.notifyDataSetChanged();

    listView.setAdapter(my_adapter_view);
    args.remove("BUNDLE");}}
Real World
  • 11
  • 2

0 Answers0