Android 如何动态给一个数据添加符号或者标识符等

这一类问题以前也发过文章 -> 传送门,只不过场景不一样,这次又通过骚操作来完成效果,这里记录一下,希望能够帮助需要的小伙伴

需求:后台数据返回一组数据,根据需求去对这些数据进行动态修改

此文章的需求:涨跌幅,跌时后台返回 - xx.xx%,涨时后台返回 xx.xx%,
要求涨时效果 +xx.xx%,此时的数据是 String 类型,并且不能转为 数字类型去判断,可以通过以下骚操作完成效果:

private String setIcon(String s){
        //由于目前后端只在跌时才有符号” - “,涨时没有” + “,涨时也有添加符号
        boolean fall = s.contains("-");//后端返回是否有”-“符
        boolean rise = s.contains("+");//后端返回是否有”+“符
        if (!fall && !rise) { //如果没有 ”-“符号,并且没有”+“符号,默认为涨,否则使用源数据
            return "+"+s;
        }else {
            return s;
        }
    }

以上就是实现方法,其他类似需求基上改造即可,

好的,这里给出一个简单的实现扫码添加数据的功能的示例,供参考。 请注意,这只是一个示例,实际实现可能需要根据具体的需求进行调整和修改。 首先,我们需要准备一个二维码生成工具和一个扫码工具。这里我们使用zxing库来生成和扫描二维码。 在项目中添加以下依赖: ``` implementation 'com.google.zxing:core:3.3.2' implementation 'com.google.zxing:android-integration:3.3.2' ``` 接下来,我们需要为二维码生成和扫描添加相应的代码。 首先是二维码生成部分。我们可以在应用程序中添加一个按钮,当用户点击该按钮时,生成一个包含唯一标识符的二维码。 ```java // 生成二维码 public void generateQRCode(String data) { try { // 创建二维码矩阵 BitMatrix bitMatrix = new MultiFormatWriter().encode(data, BarcodeFormat.QR_CODE, 200, 200); // 将矩阵转换为图片 int width = bitMatrix.getWidth(); int height = bitMatrix.getHeight(); int[] pixels = new int[width * height]; for (int y = 0; y < height; y++) { int offset = y * width; for (int x = 0; x < width; x++) { pixels[offset + x] = bitMatrix.get(x, y) ? Color.BLACK : Color.WHITE; } } Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); bitmap.setPixels(pixels, 0, width, 0, 0, width, height); // 显示二维码图片 ImageView imageView = findViewById(R.id.qrcode_imageview); imageView.setImageBitmap(bitmap); } catch (WriterException e) { e.printStackTrace(); } } // 当用户点击“生成二维码”按钮时调用 public void onGenerateQRCodeClicked(View view) { // 生成一个唯一标识符 String uniqueId = generateUniqueId(); // 将唯一标识符转换为二维码 generateQRCode(uniqueId); } ``` 接下来是二维码扫描部分。我们可以在应用程序中添加一个扫描按钮,当用户点击该按钮时,启动扫描功能。 ```java // 扫描二维码 public void scanQRCode() { IntentIntegrator integrator = new IntentIntegrator(this); integrator.setOrientationLocked(false); integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE); integrator.setPrompt("请扫描二维码"); integrator.setCameraId(0); integrator.setBeepEnabled(true); integrator.initiateScan(); } // 处理扫描结果 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data); if (result != null) { if (result.getContents() == null) { // 扫描取消 } else { // 扫描成功,获取二维码中的唯一标识符 String uniqueId = result.getContents(); // 将唯一标识符用于创建新的数据或者更新现有的数据 createOrUpdateData(uniqueId); } } else { super.onActivityResult(requestCode, resultCode, data); } } // 当用户点击“扫描二维码”按钮时调用 public void onScanQRCodeClicked(View view) { // 启动扫描功能 scanQRCode(); } ``` 最后是创建新的数据或者更新现有的数据的部分。这一部分可以根据具体需求进行实现,例如可以使用一个API将唯一标识符发送到服务器,服务器返回新的数据或者更新现有的数据。这里为了简单起见,我们只是简单地将唯一标识符打印出来。 ```java // 创建新的数据或者更新现有的数据 public void createOrUpdateData(String uniqueId) { // 根据唯一标识符创建新的数据或者更新现有的数据 Log.d("ScanQRCode", "createOrUpdateData: " + uniqueId); } ``` 以上就是一个简单的实现扫码添加数据的功能的示例。在实际开发中,需要根据具体需求进行调整和修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值