How to access local variable by storing it to class variable(global) in java android Code Answer

Hello Developer, Hope you guys are doing great. Today at Tutorial Guruji Official website, we are sharing the answer of How to access local variable by storing it to class variable(global) in java android without wasting too much if your time.

The question is published on by Tutorial Guruji team.

Fragment A

The problem here is whenever I call passitem(),passqty(),passamt(),passtot() i get the value which is declared at the time of intialization.i.e,int totalp = 0; String itemp = "", qtyp = "", amtp = "".I want the variable itemp=item;,qtyp=qty;,amtp=amt;,totalp=total;i.e,local variable data.Please help me out I’m extremly thankful to YOU all.

Also P.S:-when I try to get data itemp,qtyp.etc in onActivityCreated i’m getting it perfectly.

public class Fragment_nonveg extends Fragment {


    TextView t,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10;
    CheckBox c1,c2,c3,c4,c5;
    Button b1,b2,b5,b6,b7,b8,b9,b10,b11,b12;
    ImageButton b3;
    int x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,g1,g2,g3,g4,g5,g6,g7,g8,g9,g10;
    String res,res1,res2,res3,res4,re,re1,re2,re3,re4;
    //FloatingActionButton b4;
    int totalp = 0;
    String itemp = "", qtyp = "", amtp = "";

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {

        super.onActivityCreated(savedInstanceState);
        int total = 0;
        String item = "", qty = "", amt = "";

                if (c1.isChecked() == true) {

                    item = item + c1.getText().toString() + "n";
                    qty = qty + t2.getText().toString() + "n";
                    amt = amt + t1.getText().toString() + "n";
                    String t = t1.getText().toString();
                    total = total + Integer.parseInt(t);
                }
                if (c2.isChecked() == true) {
                    item = item + c2.getText().toString() + "n";
                    qty = qty + t4.getText().toString() + "n";
                    amt = amt + t3.getText().toString() + "n";
                    String t = t3.getText().toString();
                    total = total + Integer.parseInt(t);
                }
                if (c3.isChecked() == true) {
                    item = item + c3.getText().toString() + "n";
                    qty = qty + t6.getText().toString() + "n";
                    amt = amt + t5.getText().toString() + "n";
                    String t = t5.getText().toString();
                    total = total + Integer.parseInt(t);
                }
                if (c4.isChecked() == true) {
                    item = item + c4.getText().toString() + "n";
                    qty = qty + t8.getText().toString() + "n";
                    amt = amt + t7.getText().toString() + "n";
                    String t = t7.getText().toString();
                    total = total + Integer.parseInt(t);

                }
                if (c5.isChecked() == true) {
                    item = item + c5.getText().toString() + "n";
                    qty = qty + t10.getText().toString() + "n";
                    amt = amt + t9.getText().toString() + "n";
                    String t = t9.getText().toString();
                    total = total + Integer.parseInt(t);

                }
                itemp=item;
                qtyp=qty;
                amtp=amt;
                totalp=total;
 }
    public String passitem(){
        return itemp;
    }
    public String passqty(){
        return qtyp;
    }
    public String passamt(){
        return amtp;
    }
    public Integer passtot(){
        return totalp;
    }

}

I’m calling the code like this:

public class Menu extends AppCompatActivity {
  public FloatingActionButton b4;
  @Override protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_menu);
    b4 = findViewById(R.id.fab);
    Fragment_nonveg fragment_n = new Fragment_nonveg();
    final String nitem=fragment_n.passitem();
    final String nqty=fragment_n.passqty();
    final String namt=fragment_n.passamt();
    final Integer ntotal=fragment_n.passtot();

Answer

To solve the problem, I added a getInstance method to Fragment_nonveg and called that instead of constructing a new instance. The Fragment_nonveg wasn’t directly available otherwise.

Fragment A

    public class Fragment_nonveg extends Fragment {


        TextView t,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10;
        CheckBox c1,c2,c3,c4,c5;
        Button b1,b2,b5,b6,b7,b8,b9,b10,b11,b12;
        ImageButton b3;
        int x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,g1,g2,g3,g4,g5,g6,g7,g8,g9,g10;
        String res,res1,res2,res3,res4,re,re1,re2,re3,re4;
        public static int totalp;
    public static String itemp, qtyp, amtp;
    SharedPreferences sp;
    private static Fragment_nonveg instance;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        Bundle bundle = this.getArguments();
        instance = this;
        return inflater.inflate(R.layout.fragment_nonveg, null);
    }


        @Override
        public void onActivityCreated(@Nullable Bundle savedInstanceState) {

            super.onActivityCreated(savedInstanceState);
     //do your code
}
     public static Fragment_nonveg getInstance() {
            return instance;
        }
        public void calcu(){
            int total = 0;
            String item="",qty="",amt="";

            if (c1.isChecked() == true) {

                item=item+c1.getText().toString() + "n";
                qty=qty+t2.getText().toString() + "n";
                amt=amt+t1.getText().toString()+ "n";
                String t = t1.getText().toString();
                total=total+Integer.parseInt(t);
            }
            if (c2.isChecked() == true) {
                item=item+c2.getText().toString()+"n";
                qty=qty+t4.getText().toString()+"n";
                amt=amt+t3.getText().toString() + "n";
                String t = t3.getText().toString();
                total=total+Integer.parseInt(t);
            }
            if (c3.isChecked() == true) {
                item=item+c3.getText().toString() + "n";
                qty=qty+t6.getText().toString() + "n";
                amt=amt+t5.getText().toString() + "n";
                String t = t5.getText().toString();
                total=total+Integer.parseInt(t);
            }
            if (c4.isChecked() == true) {
                item=item+c4.getText().toString() + "n";
                qty=qty+t8.getText().toString() + "n";
                amt=amt+t7.getText().toString()+ "n";
                String t = t7.getText().toString();
                total=total+Integer.parseInt(t);

            }
            if (c5.isChecked() == true) {
                item = item + c5.getText().toString() + "n";
                qty= qty + t10.getText().toString() + "n";
                amt = amt+ t9.getText().toString() + "n";
                String t = t9.getText().toString();
                total=total+Integer.parseInt(t);

            }
            itemp=item;
            qtyp=qty;
            amtp=amt;
            totalp=total;
            sp=this.getActivity().getSharedPreferences("calis", Context.MODE_PRIVATE);
            SharedPreferences.Editor editor=sp.edit();
            editor.putString("k1",item);
            editor.putString("k2",qtyp);
            editor.putString("k3", amtp);
            editor.putInt("k4", totalp);
            editor.commit();
        }
    }

Activity that contains Fragment A

public class Menu extends AppCompatActivity {

    TextView nonveg,veg,snacks,desert,beverges;
    ViewPager viewPager;
    PageViewAdapter pageViewAdapter;
    public FloatingActionButton b4;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_menu);
        b4 = findViewById(R.id.fab);
        b4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent obj4 = new Intent(Menu.this, Bill.class);
                Fragment_nonveg.getInstance().calcu();
                startActivity(obj4);
            }
        });

    }
We are here to answer your question about How to access local variable by storing it to class variable(global) in java android - If you find the proper solution, please don't forgot to share this with your team members.

Related Posts

Tutorial Guruji