我想将ListView中的所有项目保存为pdf文件

I want save all items in ListView to pdf file

提问人:MR loo 提问时间:8/19/2023 最后编辑:ndc85430MR loo 更新时间:8/20/2023 访问量:45

问:

我编写了一个条形码阅读器程序,在列表视图中显示条形码

无论我多么努力,我都无法通过按下按钮将我的监视列表项目保存到 PDF 文件中,请帮助我。

@SuppressWarnings("ALL")
public class MainActivity extends AppCompatActivity  implements View.OnClickListener {

    Button scanBtn, btnok;

    TextView  messageFormat,ragham ;
    ArrayList<String> barcodelist = new ArrayList<>();

    HashSet<String> hashSet = new HashSet<String>();

    ArrayAdapter <String> adapter;
    String filename = "";
    String filepath = "";



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // referencing and initializing
        // the button and textviews
        scanBtn = findViewById(R.id.btnscann);
        filename = "barcodes.txt";
        ListView list1 = findViewById(R.id.list1);

        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,barcodelist);

        list1.setAdapter(adapter);



        scanBtn.setOnClickListener(this);



        Button b=findViewById(R.id.btnok);
        btnok.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Toast.makeText(MainActivity.this, "ok", Toast.LENGTH_SHORT).show();


                ObjectOutputStream out;
               Object[] objs = new Object[list1.getCount()];
               for (int i = 0 ; i < list1.getCount();i++) {
                  Object obj = (Object)list1.getItemAtPosition(i);
                  objs[i] = obj;
               }                try {
                   out = new ObjectOutputStream
                           (new FileOutputStream(new File(filename)));
                   out.writeObject(objs);
                   out.flush();
                    out.close();
                } catch (FileNotFoundException e) {
                   e.printStackTrace();
               } catch (IOException e) {
                    e.printStackTrace();
               }


            }
});
java android listview 保存 导出

评论

0赞 Shovel_Knight 8/19/2023
首先,您正在写入文件,但您的问题是关于 PDF 的?🤔 另外,您的列表正在显示字符串,为什么不简单地将字符串写入文件,为什么要将列表项转换为第一个?txtObject
0赞 Shovel_Knight 8/19/2023
此外,您正在打开和关闭列表中每个项目的文件,您可能应该在循环之前打开文件并在循环之后关闭它。
0赞 MR loo 8/19/2023
我是新手,我想用 PDF 格式保存列表视图中显示的项目,以便以后使用。如果可能的话,请解决这个问题。
0赞 Shovel_Knight 8/19/2023
阅读有关内置 PdfDocument API 的文档将是一个很好的起点:developer.android.com/reference/android/graphics/pdf/...
0赞 Shovel_Knight 8/19/2023
也可以尝试本教程,我自己没有遵循它,但它看起来很简单。geeksforgeeks.org/how-to-generate-a-pdf-file-in-android-app

答:

0赞 Andrew 8/20/2023 #1

现在真的不应该使用列表视图,recyclerview 在屏幕上显示更有效,但由于您可以使用 PDFDocument 将视图直接绘制到 PDF,因此列表视图或 recyclerview 可以创建非标准 PDF 页面大小以将所有内容放在一个页面中,或者您必须弄清楚如何将项目拆分到多个页面上。

我已经做了一个完整的示例,说明如何将回收器视图绘制到多页pdf。