简体   繁体   中英

How do I get class file variable to another activity and access via button using intent not putExtra?

my problem is when I scan Qr code, I want to get the class file variables and send via btnSearch button to an another activity. plz help me how to do it? sorry for poor English

This is My class file

public class UploadDataGetter {

    @SerializedName("record_id")
    private int id;

    @SerializedName("full_name")
    private static String name;

    @SerializedName("full_address")
    private String address;

    @SerializedName("contact")
    private String contact;

    @SerializedName("dilivery_place")
    private String dplace;

    @SerializedName("dilivery_place")
    private String  fdetails;


    @SerializedName("no_of_normal")
    private int  noOfNormal;

    @SerializedName("no_of_classified")
    private int  noOfClassified;

    @SerializedName("no_of_cds")
    private int  noOfCds;



    public UploadDataGetter(
            //constuctor's para
                        int record_id,
                        String full_name,
                        String full_address,
                        String contact_number,
                        String dilivery_place ,
                        String further_details,
                        int no_of_normal,
                        int no_of_classified,
                        int no_of_cds

    )
    {
        id = record_id;
        name    = full_name;
        address = full_address;
        contact = contact_number;
        dplace  = dilivery_place;
        fdetails = further_details;

        noOfNormal = no_of_normal;
        noOfClassified= no_of_classified;
        noOfCds = no_of_cds;

        String  img_collector ;
        String  dilivery_status ;
        double  geo_long;
        double  geo_lat;

    }

    public
    int getId() {
        return id;
    }

    public
    void setId(int id) {
        this.id = id;
    }

    public static
    String getName() {
        return name;
    }

    public
    void setName(String name) {
        this.name = name;
    }

    public
    String getAddress() {
        return address;
    }

    public
    void setAddress(String address) {
        this.address = address;
    }

    public
    String getContact() {
        return contact;
    }

    public
    void setContact(String contact) {
        this.contact = contact;
    }

    public
    String getDplace() {
        return dplace;
    }

    public
    void setDplace(String dplace) {
        this.dplace = dplace;
    }

    public
    String getFdetails() {
        return fdetails;
    }

    public
    void setFdetails(String fdetails) {
        this.fdetails = fdetails;
    }

    public
    int getNoOfNormal() {
        return noOfNormal;
    }

    public
    void setNoOfNormal(int noOfNormal) {
        this.noOfNormal = noOfNormal;
    }

    public
    int getNoOfClassified() {
        return noOfClassified;
    }

    public
    void setNoOfClassified(int noOfClassified) {
        this.noOfClassified = noOfClassified;
    }

    public
    int getNoOfCds() {
        return noOfCds;
    }

    public
    void setNoOfCds(int noOfCds) {
        this.noOfCds = noOfCds;
    }

this is my Qr Activity,

public class QrActivity extends AppCompatActivity {


    public static UploadDataGetter id;
    public static UploadDataGetter name;
    public static UploadDataGetter address;
    public static UploadDataGetter dplace;
    public static UploadDataGetter fdetails;
    public static UploadDataGetter noOfNormal;
    public static UploadDataGetter noOfClassified;
    public static UploadDataGetter noOfCds;
    public static UploadDataGetter img_collector;
    public static UploadDataGetter dilivery_status;



    /**
     * QR code declaration
     */

    Button btnscan, btnSearch;
    TextView lblSearch;

    TextView ID;
    TextView DPlace;
    TextView Address;
    TextView name;
    TextView contact;
    private Object uploadDataGetter;
    private String result;


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

        btnscan = (Button) findViewById(R.id.btnscan);
        btnscan.setClickable(false);
        btnSearch = (Button) findViewById(R.id.btnSearch);
        btnSearch.setClickable(false);
        lblSearch = (TextView) findViewById(R.id.lblSearch);



        final Activity activity = this;
        btnscan.setOnClickListener(new View.OnClickListener() {
            @Override
            public
            void onClick(View v) {
                btnscan.setClickable(true);
                IntentIntegrator integrator = new IntentIntegrator(activity);
                integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);
                integrator.setPrompt("Scan");
                integrator.setCameraId(0);
                integrator.setBeepEnabled(false);
                integrator.setBarcodeImageEnabled(false);
                integrator.initiateScan();



            }


        });

        //call the class var
        if (this.getIntent().getAction().equals("moveData"))
            moveData();
    }

    private void moveData() {



        String id = uploadDataGetter.toString();
        String name = uploadDataGetter.toString();
        String address = uploadDataGetter.toString();
        String dplace = uploadDataGetter.toString();
        String noOfNormal= uploadDataGetter.toString();
        String noOfClassified = uploadDataGetter.toString();
        String noOfCds = uploadDataGetter.toString();




        //this is for Calling class file




    }





    @Override
    protected
    void onActivityResult(int requestCode, int resultCode, Intent data) {
        IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);

        if (result != null) {

            if (result.getContents() == null) {

                Toast.makeText(this, "You cancelled the scanning", Toast.LENGTH_SHORT).show();
            } else {
                /**
                 * Qr code result
                 * */
                lblSearch.setText(result.getContents());

                // Toast.makeText(this, result.getContents(), Toast.LENGTH_SHORT).show();
            }
        } else {
            super.onActivityResult(requestCode, resultCode, data);
        }




         // "Go to Second Activity" button click
        View.OnClickListener listener = new View.OnClickListener() {

            @Override
            public
            void onClick(View v) {
                btnSearch.setClickable(true);

                Intent myIntent= new Intent(QrActivity.this, DistributionDetails.class);


                myIntent.setAction("moveData");


                startActivity(myIntent);


            }

        };
        btnscan.setOnClickListener(listener);
        btnSearch.setOnClickListener(listener);

    }


    public
    void getResults(View view) {
    }
}

Replace your class with this

public class UploadDataGetter implements Serializable {

    @SerializedName("record_id")
    private int id;

    @SerializedName("full_name")
    private String name;

    @SerializedName("full_address")
    private String address;

    @SerializedName("contact")
    private String contact;

    @SerializedName("dilivery_place")
    private String dplace;

    @SerializedName("dilivery_place")
    private String fdetails;

    @SerializedName("no_of_normal")
    private int noOfNormal;

    @SerializedName("no_of_classified")
    private int noOfClassified;

    @SerializedName("no_of_cds")
    private int noOfCds;


    public UploadDataGetter(
            //constuctor's para
            int record_id,
            String full_name,
            String full_address,
            String contact_number,
            String dilivery_place,
            String further_details,
            int no_of_normal,
            int no_of_classified,
            int no_of_cds

    ) {
        id = record_id;
        name = full_name;
        address = full_address;
        contact = contact_number;
        dplace = dilivery_place;
        fdetails = further_details;

        noOfNormal = no_of_normal;
        noOfClassified = no_of_classified;
        noOfCds = no_of_cds;

        String img_collector;
        String dilivery_status;
        double geo_long;
        double geo_lat;

    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getContact() {
        return contact;
    }

    public void setContact(String contact) {
        this.contact = contact;
    }

    public String getDplace() {
        return dplace;
    }

    public void setDplace(String dplace) {
        this.dplace = dplace;
    }

    public String getFdetails() {
        return fdetails;
    }

    public void setFdetails(String fdetails) {
        this.fdetails = fdetails;
    }

    public int getNoOfNormal() {
        return noOfNormal;
    }

    public void setNoOfNormal(int noOfNormal) {
        this.noOfNormal = noOfNormal;
    }

    public int getNoOfClassified() {
        return noOfClassified;
    }

    public void setNoOfClassified(int noOfClassified) {
        this.noOfClassified = noOfClassified;
    }

    public int getNoOfCds() {
        return noOfCds;
    }

    public void setNoOfCds(int noOfCds) {
        this.noOfCds = noOfCds;
    }
}

now send this to new activity in intent like this

Intent intent=new Intent(this, NewActivity.class);
int.putExtra("data", YOUR_UPDATE_DATA_GETTER_OBJECT);

Now get the object in the new activity like this

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;

public class NewActivity extends Activity {


    private UploadDataGetter dataGetter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Intent intent=getIntent();
        if(intent.hasExtra("data")){
            dataGetter= (UploadDataGetter) intent.getSerializableExtra("data");
            Log.d("NewActivity","ID: "+dataGetter.getId());
        }
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM