用于打印目的的Android Studio中的HTML代码内部循环

问题描述 投票:0回答:1

我开发了一个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>&nbsp;</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>&nbsp;</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项目执行相同的概念

提前感谢。

java android html
1个回答
0
投票

用于在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>"
© www.soinside.com 2019 - 2024. All rights reserved.