【问题标题】:How to set data in textview from xml?如何从xml在textview中设置数据?
【发布时间】:2016-10-08 06:20:35
【问题描述】:

我正在从 Adhar Card 扫描 QRCode,我正在获取我在 toast 中显示的参数中的数据。我在下面显示了我收到的 xml 数据的格式。现在我想要在文本视图中显示这些所有字段。我怎样才能做到这一点?

xml数据--

<?xml version="1.0" encoding="UTF-8"?>
<PrintLetterBarcodeData uid="123456789" name="xyz" gender="M" yob="1978" co="S/O abc" loc="vgvgjv" vtc="jkl" po="gfvygvyv" dist="jkl" state="hbbuh" pc="12345"/>

下面是我的代码,我在 rawResult 中接收数据。

public class SimpleScannerActivity extends BaseScannerActivity implements ZXingScannerView.ResultHandler {
    private ZXingScannerView mScannerView;

    @Override
    public void onCreate(Bundle state) {
        super.onCreate(state);
        setContentView(R.layout.activity_simple_scanner);
        setupToolbar();

        ViewGroup contentFrame = (ViewGroup) findViewById(R.id.content_frame);
        mScannerView = new ZXingScannerView(this);
        contentFrame.addView(mScannerView);
    }

    @Override
    public void onResume() {
        super.onResume();
        mScannerView.setResultHandler(this);
        mScannerView.startCamera();
    }

    @Override
    public void onPause() {
        super.onPause();
        mScannerView.stopCamera();
    }

    @Override
    public void handleResult(Result rawResult) {
        Toast.makeText(this, "Contents = " + rawResult.getText() +   ", Format = " + rawResult.getBarcodeFormat().toString(), Toast.LENGTH_LONG).show();
        //in1.txtMeterSerialNo.setText(rawResult.getText().toString());
        //finish();
        // Note:
        // * Wait 2 seconds to resume the preview.
        // * On older devices continuously stopping and resuming camera preview can result in freezing the app.
        // * I don't know why this is the case but I don't have the time to figure out.
        Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                mScannerView.resumeCameraPreview(SimpleScannerActivity.this);
            }
        }, 2000);
    }
}

【问题讨论】:

    标签: android xml textview qr-code


    【解决方案1】:

    在你的 XML 中创建一个带有特定 ID 的 textView

    android:id="@+id/myText"
    

    现在,在您的 Java 文件中,使用以下代码:

    TextView myTextView = (TextView) findViewById(R.id.myText);
    myTextView.setText("Contents = " + rawResult.getText().toString());
    

    这会将 TextView 的显示文本设置为 rawResult 的 String 值。

    【讨论】:

    • 谢谢兄弟。我想在不同的文本视图中显示所有这些值,例如在另一个文本视图中的 uid,然后在另一个文本视图中这样命名。
    • 为此,您需要将字符串拆分为多个子字符串:tutorialspoint.com/java/java_string_substring.htm,然后您可以在多个 TextView 中单独显示它们中的每一个。希望我有所帮助:D 如果您对答案感到满意,可以投票或标记为已接受的答案? :D
    【解决方案2】:

    您必须使用xml解析来解析数据并获取字段值。检查此链接:https://www.tutorialspoint.com/android/android_xml_parsers.htm

    【讨论】:

      【解决方案3】:
       InputStream is = null;
          try {
              HashMap<String, String> map = new HashMap<>();
              AssetManager assetManager = this.getAssets();
              is = assetManager.open("data.xml");//if your file is under "assets"
              XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
              factory.setNamespaceAware(true);
              XmlPullParser xpp = factory.newPullParser();
              xpp.setInput(is, null);
              if (xpp.getName() != null&&xpp.getName().equals("PrintLetterBarcodeData")) {
                  String uid= xpp.getAttributeValue(null, "uid");
                  map.put("uid", uid);
                  String name = xpp.getAttributeValue(null,"name");
                  map.put("name", name);
              }
          } catch (Exception e) {
              Log.w(TAG, "error", e);
          } finally {
              Utils.closeSilently(is);
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-05
        • 1970-01-01
        • 2023-03-06
        • 1970-01-01
        相关资源
        最近更新 更多