Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用android studio将数据导出到google工作表:如何在活动之间传递变量?_Java_Android_Variables_Export - Fatal编程技术网

Java 使用android studio将数据导出到google工作表:如何在活动之间传递变量?

Java 使用android studio将数据导出到google工作表:如何在活动之间传递变量?,java,android,variables,export,Java,Android,Variables,Export,我正在尝试应用一些教程,介绍如何借助条形码系统在谷歌表单上发布一些数据 这个想法很简单:我想扫描一个图书条形码,然后将ISBN(例如scanContent=0123456789012)发送到Google sheet 我几乎做到了! 但有一点我无能为力,因为我缺乏Java方面的知识(我只是复制了不同的教程) 如何将变量“scanContent”导出到公共类“SendRequest”?事实上,就目前而言,我发送给Google Sheet的数据是“未定义的” 关于Stackoverflow有很多帮助,

我正在尝试应用一些教程,介绍如何借助条形码系统在谷歌表单上发布一些数据

这个想法很简单:我想扫描一个图书条形码,然后将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);
}