将参数从fragment传递给createPDF()不起作用

时间:2016-05-25 18:12:38

标签: java android android-fragments parameter-passing

我不知道为什么但是在同一个片段中将参数从fragment传递给createPDF()不起作用...如果我将变量“myInt”放入Paragraph的类droidText的构造函数中},变量is null(段落p1 =新段落(myInt))所以我看不到文档中变量的内容.....显示我的代码......高级人人物!!!!!!!! !!!!!!!!!!

我希望你能帮助我!

谢谢!

public class TwoFragment extends Fragment {

        private View v;
        String myInt="";
        int cazzo2;
        String scelta3;

        public TwoFragment() {
            // Required empty public constructor
        }
        public static TwoFragment getInstance(String myInt,int cazzo2,String scelta3){
            TwoFragment twoFragment=new TwoFragment();
            twoFragment.myInt=myInt;
            twoFragment.cazzo2=cazzo2;
            twoFragment.scelta3=scelta3;
            return twoFragment;
        }

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            // Inflate the layout for this fragment
            View rootView = inflater.inflate(R.layout.fragment_two, container, false);
            Button mButton = (Button) rootView.findViewById(R.id.newbutton);
            mButton.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {

                    //sendemail();
                    createPDF();
                    viewPDF();



                }
            });
            TextView titolo3 = (TextView)rootView.findViewById(R.id.result);
            TextView titolo2 = (TextView)rootView.findViewById(R.id.result2);
            TextView titolo4 = (TextView)rootView.findViewById(R.id.resultpizze);

            titolo3.setText(myInt);
            titolo2.setText(String.valueOf(cazzo2));
            titolo4.setText(scelta3);

            return rootView;
        }
        /* public void sendemail(){

             Intent intent = new Intent(Intent.ACTION_SEND);
             intent.setData(Uri.parse("mailto:"));
             String[] to={"marco_marcoletto@hotmail.it"};
             intent.putExtra(Intent.EXTRA_EMAIL,to);
             intent.putExtra(Intent.EXTRA_SUBJECT, "ciao");
             intent.putExtra(Intent.EXTRA_TEXT, "zao");
             intent.setType("message/rfc822");
             chooser=intent.createChooser(intent,"manda email");
             startActivity(chooser);
         }*/
        public void createPDF() {

            Document doc = new Document();

            try {
                String path = Environment.getExternalStorageDirectory()
                        .getAbsolutePath() + "/droidText";

                File dir = new File(path);
                if (!dir.exists())
                    dir.mkdirs();

                Log.d("PDFCreator", "PDF Path: " + path);

                File file = new File(dir, "sample.pdf");
                FileOutputStream fOut = new FileOutputStream(file);

                PdfWriter.getInstance(doc, fOut);

                // open the document
                doc.open();
                ByteArrayOutputStream stream = new ByteArrayOutputStream();
                Bitmap bitmap = BitmapFactory.decodeResource(getContext()
                        .getResources(), R.drawable.androtuto);
                bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
                Image myImg = Image.getInstance(stream.toByteArray());
                myImg.setAlignment(Image.MIDDLE);

                // add image to document
                doc.add(myImg);

                Paragraph p1 = new Paragraph(myInt);
                Log.d("ciao",myInt);

                Font paraFont = new Font(Font.COURIER);
                p1.setAlignment(Paragraph.ALIGN_CENTER);
                p1.setFont(paraFont);

                // add paragraph to document
                doc.add(p1);

                Paragraph p2 = new Paragraph("Ciao");
                Font paraFont2 = new Font(Font.COURIER, 14.0f, Color.GREEN);
                p2.setAlignment(Paragraph.ALIGN_CENTER);
                p2.setFont(paraFont2);

                doc.add(p2);

                stream = new ByteArrayOutputStream();
                bitmap = BitmapFactory.decodeResource(getContext()
                        .getResources(), R.drawable.android);
                bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
                myImg = Image.getInstance(stream.toByteArray());
                myImg.setAlignment(Image.MIDDLE);

                // add image to document
                doc.add(myImg);

                // set footer
                Phrase footerText = new Phrase("Pied de page ");
                HeaderFooter pdfFooter = new HeaderFooter(footerText, false);
                doc.setFooter(pdfFooter);

            } catch (DocumentException de) {
                Log.e("PDFCreator", "DocumentException:" + de);
            } catch (IOException e) {
                Log.e("PDFCreator", "ioException:" + e);
            } finally {
                doc.close();
            }

        }
        public void viewPDF(){
            String path = "/sdcard/droidText/sample.pdf";
            File targetFile = new File(path);
            Uri targetUri = Uri.fromFile(targetFile);

            Intent intent;
            intent = new Intent(Intent.ACTION_VIEW);
            intent.setDataAndType(targetUri, "application/pdf");

            startActivity(intent);
        }

    }

和其他片段

    public class ThreeFragment extends Fragment implements
            android.widget.CompoundButton.OnCheckedChangeListener {

        ListView lv2;
        ArrayList<Planet> planetList;
        ListView lv;

        ArrayList<Birra> birraList;
        BirraAdapter biAdapter;
        PlanetAdapter plAdapter;
        Planet p;
        String myInt="";



        PlanetAdapter.PlanetHolder holder;


        public ThreeFragment() {
            // Required empty public constructor
        }


        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            // Inflate the layout for this fragment

            final ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment_three, container, false);

            Button mButton = (Button) rootView.findViewById(R.id.button2);
            mButton.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    MyListFragment mlf=new MyListFragment();

                    mlf.showResult(v);
                    // MyListFragment.showResult(v);
                    showResult2(v);


                }
            });
            //return inflater.inflate(R.layout.fragment_list2, container, false);
            return rootView;
        }


        @Override
        public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
            super.onViewCreated(view, savedInstanceState);

            lv2 = (ListView) getView().findViewById(R.id.listview2);
            displayBirraList();
        }


        private void displayBirraList() {

            birraList = new ArrayList<Birra>();
            birraList.add(new Birra("Paulaner", 6, "€"));
            birraList.add(new Birra("Forst", 7, "€"));
            birraList.add(new Birra("Peroni", 5, "€"));
            birraList.add(new Birra("Corona", 5, "€"));
            birraList.add(new Birra("Nastro Azzurro", 4, "€"));
            biAdapter = new BirraAdapter(birraList, getContext()) {
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    int pos = lv2.getPositionForView(buttonView);
                    if (pos != ListView.INVALID_POSITION) {
                        Birra b = birraList.get(pos);
                        b.setSelected(isChecked);


                /*Toast.makeText(
                    getActivity(),
                    "Clicked on Pizza: " + p.getName() + ". State: is "
                            + isChecked, Toast.LENGTH_SHORT).show();*/
                    }


                }


            };


            lv2.setAdapter(biAdapter);
        }


        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {


            /*int pos = lv.getPositionForView(buttonView);
            if (pos != ListView.INVALID_POSITION) {
                Planet p = planetList.get(pos);
                p.setSelected(isChecked);


                *//**//**//**//*Toast.makeText(
                    getActivity(),
                    "Clicked on Planet: " + p.getName() + ". State: is "
                            + isChecked, Toast.LENGTH_SHORT).show();*//**//**//**//*
            }
    */
        }


        public void showResult2(View v) {
            String result = "Selected Product are :";
            int totalAmount = 0;
            // String a = "";


            for (Birra b : biAdapter.getBox()) {

                if (b.selected) {

                    result += "\n" + b.name + " " + b.distance + "€" + "q.tà :" + b.getQuantità();
                    int quantitaInt = Integer.parseInt(b.getQuantità());
                    totalAmount += b.distance * quantitaInt;
                    //  a=String.valueOf(totalAmount);


                }
            }
          /*  for (Planet p : plAdapter.getBox()) {
                if (p.isSelected()) {


                    result += "\n" + p.getName() + " " + p.getDistance() + "€" + "q.tà :" + p.getQuantità();
                    int quantitaInt = Integer.parseInt(p.getQuantità());
                    //totalAmount2+=p.distance * quantitaInt;
                    //z=String.valueOf(totalAmount2);


                }
            }*/



            Toast.makeText(getActivity(), result +  "\n" + "Total Amount:=" + totalAmount + "€", Toast.LENGTH_LONG).show();
            TwoFragment fgsearch2 = TwoFragment.getInstance(result,totalAmount,"test");
            android.support.v4.app.FragmentTransaction transaction2 = getActivity().getSupportFragmentManager().beginTransaction();
            transaction2.replace(R.id.content_main, fgsearch2);
            transaction2.commit();




        }
    }

0 个答案:

没有答案