繁体   English   中英

Android Studio:如何将变量从一个 java 文件保存到另一个文件

[英]Android Studio : How to keep variables from one java file to another

我正在开发一个将扫描数据(条形码)转换为 GoogleSheet 数据的应用程序,并且我正在尝试将条形码编号(来自 Page2.java)传输到另一个 java 文件(ListItem.java)

我看到通常的方法是创建意图。 所以我做到了。 但是我放入 ListItem.java 的吐司给了我“null”而不是扫描的数字(例如 0123456789012)

拜托,你能告诉我我哪里错了吗? 太感谢了 !

第一个代码(Page2.java,我得到“scanContent2”,我需要的变量):

public class Page2 extends Activity implements OnClickListener {

    @SuppressLint("ClickableViewAccessibility")
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.page2);
        scanBtn2 = (Button) findViewById(R.id.scan_button2);

        scanBtn2.setOnClickListener(this);
    }

    public Button scanBtn2;
    public String scanContent2;

    @Override
    public void onClick(View v) {
        if (v.getId() == R.id.scan_button2) {
            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) {
            scanContent2 = scanningResult.getContents();

            Intent intenta = new Intent(getApplicationContext(),ListItem.class);
            intenta.putExtra("theScanContent2", scanContent2);
            startActivity(intenta);

        } else {
            Toast toast = Toast.makeText(getApplicationContext(),
                    "No scan data received!", Toast.LENGTH_SHORT);
            toast.show();
        }
    }
}

第二个代码(ListItem.java,我在吐司上得到“null”):

public class ListItem extends AppCompatActivity {

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

        String scanContent2 = getIntent().getStringExtra("theScanContent");

        Toast toast = Toast.makeText(getApplicationContext(),
                "BarCode number: " + scanContent2, Toast.LENGTH_SHORT);
        toast.show();

    }
}

在以下行的Listitem.java中,

String scanContent2 = getIntent().getStringExtra("theScanContent");

您正在尝试使用键theScanContent获取 String ,同时将键theScanContent2的 scanContent2 放在 Page2.java 中

intent.putExtra("theScanContent2", scanContent2);

确保 Intent 的键相同,同时将数据放入 Intent 并从 Intent 访问数据以避免获得 null 结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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