我的问题是当我扫描二维码时,我想获取类文件变量 并通过 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/