如何在 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);
}
我正在从 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
创建一个 textViewandroid: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);
}