如何在 xml 的 textview 中设置数据?

How to set data in textview from xml?

我正在从 Adhar Card 扫描 QRCode,我正在 toast.I 中显示的参数中获取数据,下面显示了我收到的 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);
    }
}

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

在您的 XML 中使用特定 ID

创建一个 textView
android:id="@+id/myText"

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

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

这会将 TextView 的显示文本设置为 rawResult 的字符串值。

 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);
    }