我开发了一个android应用程序,需要将拆分的数据行放入HTML表格中,才能将其发送到打印机但我无法处理如何将for循环放入所有行。
我搜索了很多次,但也许由于我的母语而不是英语而无法描述我的问题。
private void doWebViewPrint() {
// Create a WebView object specifically for printing
WebView webView = new WebView(this);
final Cursor c = mDatabase.rawQuery("SELECT * FROM " +
Contract.Entry.TABLE_NAME + "", null);
int count = c.getCount();
for (int i = 1; i <= count; i++) {
enter code here
c.moveToPosition(i);
}
String name =
c.getString(c.getColumnIndex(Contract.Entry.COLUMN_NAME));
String amount =
c.getString(c.getColumnIndex(Contract.Entry.COLUMN_AMOUNT));
String dose =
c.getString(c.getColumnIndex(Contract.Entry.COLUMN_DOSE));
webView.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Override
public void onPageFinished(WebView view, String url) {
Log.i(patintNametv.getText().toString(), "page finished loading " + url);
createWebPrintJob(view);
mWebView = null;
}
});
// Generate an HTML document on the fly:
String htmlDocument =
"<html><body><!-- Required meta tags -->\n" +
"<p> </p>\n" +
"<div>\n" +
"<div class=\"head\" style=\"direction: rtl; text-
align: center; width: 70%;\">\n" +
"<h5 style=\"padding: -20px;\">Doctor</h5>\n" +
"<h4>soso al asoli</h4>\n" +
"<h5>example</h5>\n" +
"<h5> example</h5>\n" +
"<ul style=\"list-style-type: circle;\">\n" +
"<li>الاسم</li>\n" +
"<li>العمر</li>\n" +
"<li>التاريخ\n" +
"<table>\n" +
"<tbody>\n" +
"<tr>\n" +
"<td>الاسم</td>\n" +
"<td>الكمية</td>\n" +
"<td>الجرعة;</td>\n" +
"</tr>\n" +
//here i want the for loop make the table for all rows
"<tr>\n" +
"<td>" + name + "</td>\n" +
"<td>" + amount + "</td>\n" +
"<td>" + dose + "</td>\n" +
"</tr>\n"+
"</tbody>\n" +
"</table>\n" +
"</li>\n" +
"</ul>\n" +
"</div>\n" +
"<div> </div>\n" +
"<div>\n" +
"<div>phone:0780801245</div>\n" +
"<div>location:location</div>\n" +
"<div>some note here</div>\n" +
"</div>\n" +
"</div></body></html>";
webView.loadDataWithBaseURL(null, htmlDocument, "text/HTML", "UTF-8", null);
mWebView = webView;
}
感谢您的任何帮助您可以放置一个链接或任何git-hub项目执行相同的概念
提前感谢。
用于在html标记中使用for loop
,创建一个方法并在<tr><td> str 1 .....</td></tr>
中添加每一行,然后返回所需的位置。
请参见示例..
fun returnPaymentValue(data: BidInvoiceRsponse): String {
var str11 : String = ""
for(i in 0 until data.data.buyerpayments.size) {
var strn = "<tr><td class=\"no\">" + (i+1).toString() + "</td><td class=\"desc\">" + data.data.buyerpayments.get(i).name + "</td><td class=\"unit\">" + roundToDecimals(data.data.buyerpayments.get(i).amount, 1) + "</td>"
if (TextUtils.isEmpty(data.data.buyerpayments.get(i).paymentMode)) {
strn += "</td><td class=\"desc\">" + "-" + "</td>"
} else {
strn += "</td><td class=\"desc\">" + data.data.buyerpayments.get(i).paymentMode + "</td>"
}
if (TextUtils.isEmpty(data.data.buyerpayments.get(i).paymentDate)) {
strn += "</td><td class=\"desc\">" + "-" + "</td>"
} else {
strn += "</td><td class=\"desc\">" + dateconvert(data.data.buyerpayments.get(i).paymentDate) + "</td>"
}
strn += "</tr>"
str11 += strn
println("****** ggg "+ strn)
}
println("****** kk "+ str11)
return str11!!
}
--------------------我想要的地方----------------
.html("<!DOCTYPE`enter code here` html>\n" +
"<html lang=\"en\">\n" +
" <head>\n" +
" <meta charset=\"utf-8\">\n" +
" <title>Farmx Invoice</title>\n" +
:
:
:
:// . Calling method in html tag
<tbody>\n" +
returnPaymentValue(data)+""+
" </tbody>\n" +
:
:
:
:
:
:
" \n" +
" </body>\n" +
"</html>"