gpt4 book ai didi

java - 如何使用 Intent 而不是 putExtra 将类文件变量获取到另一个 Activity 并通过按钮进行访问?

转载 作者:行者123 更新时间:2023-12-02 02:38:08 25 4
gpt4 key购买 nike

我的问题是当我扫描二维码时,我想获取类文件变量并通过 btnSearch 按钮发送到另一个 Activity 。请帮帮我该怎么办?抱歉英语不好

这是我的类(class)文件

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;
}

这是我的二维码 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) {
}
}

最佳答案

用这个替换你的类

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;
}
}

现在将其发送到这样的 Intent 中的新 Activity

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

现在像这样在新 Activity 中获取对象

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());
}
}
}

关于java - 如何使用 Intent 而不是 putExtra 将类文件变量获取到另一个 Activity 并通过按钮进行访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57194208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com