Java 使用android studio将数据导出到google工作表:如何在活动之间传递变量?
我正在尝试应用一些教程,介绍如何借助条形码系统在谷歌表单上发布一些数据 这个想法很简单:我想扫描一个图书条形码,然后将ISBN(例如scanContent=0123456789012)发送到Google sheet 我几乎做到了! 但有一点我无能为力,因为我缺乏Java方面的知识(我只是复制了不同的教程) 如何将变量“scanContent”导出到公共类“SendRequest”?事实上,就目前而言,我发送给Google Sheet的数据是“未定义的” 关于Stackoverflow有很多帮助,但我没有将它们应用到我的代码中 请帮帮我,因为这个问题让我发疯了!:'(非常感谢!!! 以下是代码的开头:Java 使用android studio将数据导出到google工作表:如何在活动之间传递变量?,java,android,variables,export,Java,Android,Variables,Export,我正在尝试应用一些教程,介绍如何借助条形码系统在谷歌表单上发布一些数据 这个想法很简单:我想扫描一个图书条形码,然后将ISBN(例如scanContent=0123456789012)发送到Google sheet 我几乎做到了! 但有一点我无能为力,因为我缺乏Java方面的知识(我只是复制了不同的教程) 如何将变量“scanContent”导出到公共类“SendRequest”?事实上,就目前而言,我发送给Google Sheet的数据是“未定义的” 关于Stackoverflow有很多帮助,
public class MainActivity extends Activity implements OnClickListener {
string scanContent;
@SuppressLint("ClickableViewAccessibility")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
scanBtn = (Button) findViewById(R.id.scan_button);
formatTxt = (TextView) findViewById(R.id.scan_format);
contentTxt = (TextView) findViewById(R.id.scan_content);
scanBtn.setOnClickListener(this);
}
private Button scanBtn;
private TextView formatTxt, contentTxt;
@Override
public void onClick(View v) {
if (v.getId() == R.id.scan_button) {
IntentIntegrator scanIntegrator = new IntentIntegrator(this);
scanIntegrator.initiateScan();
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
if (scanningResult != null) {
scanContent = scanningResult.getContents();
String scanFormat = scanningResult.getFormatName();
formatTxt.setText("FORMAT : " + scanFormat);
new SendRequest().execute();
} else {
Toast toast = Toast.makeText(getApplicationContext(),
"No scan data received!", Toast.LENGTH_SHORT);
toast.show();
}
}
public class SendRequest extends AsyncTask<String, Void, String> {
protected void onPreExecute(){}
@SuppressLint("WrongThread")
protected String doInBackground(String... arg0) {
try{
URL url = new URL("https://script.google.com/macros/s/AKfycbxIIKqD6ksuVd0eNCVcStIXIkvLSgjty1RqaHn96pY/dev");
JSONObject postDataParams = new JSONObject();
contentTxt.setText("EAN : " + scanContent);
postDataParams.put("sdata",scanContent);
Log.e("params",postDataParams.toString());
. . .
public类MainActivity扩展活动实现OnClickListener{
字符串扫描内容;
@SuppressLint(“ClickableViewAccessibility”)
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
scanBtn=(按钮)findViewById(R.id.scan_按钮);
formatTxt=(TextView)findViewById(R.id.scan\u格式);
contentTxt=(TextView)findViewById(R.id.scan\u content);
scanBtn.setOnClickListener(此);
}
专用按钮扫描;
私有文本视图格式txt,contentTxt;
@凌驾
公共void onClick(视图v){
if(v.getId()==R.id.scan_按钮){
监督整合器scanIntegrator=新监督整合器(本);
scanIntegrator.initiateScan();
}
}
@凌驾
ActivityResult上的公共void(int请求代码、int结果代码、意图){
IntentResult scanningResult=IntentIntegrator.parseActivityResult(请求代码、结果代码、意图);
如果(扫描结果!=null){
scanContent=scanningResult.getContents();
字符串scanFormat=scanningResult.getFormatName();
formatTxt.setText(“格式:”+scanFormat);
新建SendRequest().execute();
}否则{
Toast Toast=Toast.makeText(getApplicationContext(),
“未收到扫描数据!”,Toast.LENGTH\u SHORT);
toast.show();
}
}
公共类SendRequest扩展了异步任务{
受保护的void onPreExecute(){}
@SuppressLint(“错误线程”)
受保护的字符串doInBackground(字符串…arg0){
试一试{
URL=新URL(“https://script.google.com/macros/s/AKfycbxIIKqD6ksuVd0eNCVcStIXIkvLSgjty1RqaHn96pY/dev");
JSONObject postDataParams=新的JSONObject();
contentTxt.setText(“EAN:+scanContent”);
postDataParams.put(“sdata”,scanContent);
Log.e(“params”,postDataParams.toString());
. . .
如果要正确执行,请查看的概念,并将参数直接传递到doInBackground方法中。
如果您想要简单的方法,请为SendRequest类创建一个构造函数。
试试这个:
new SendRequest("scanContent").execute();
public class SendRequest extends AsyncTask<String, Void, String> {
String scanContent;
SendRequest(String scanContent){
this.scanContent = scanContent;
}
}
protected String doInBackground(String... arg0) {
Log.d("SendRequest", scanContent);
}
newsendRequest(“scanContent”).execute();
公共类SendRequest扩展了异步任务{
字符串扫描内容;
SendRequest(字符串扫描内容){
this.scanContent=scanContent;
}
}
受保护的字符串doInBackground(字符串…arg0){
Log.d(“发送请求”,scanContent);
}