表格布局行项目clicklistner在android中不起作用

问题描述

嗨,在下面的代码中,我已实现表布局,其中表表行包含名为Title,文件名,查看/下载的表行,在最后一行中查看/下载添加了名为预览的行。如果用户单击预览,我想路径名称,并显示为pdf格式。

任何人都可以帮助我,这给了我空白的画面

java:

String operation = "getRelatedDocuments";
        String module = "Documents";
        final String record=opportunitywon_id;
        Log.d("record",record);
        final APIService service = RetroClass.getRetrofitInstance().create(APIService.class);
        /** Call the method with parameter in the interface to get the notice data*/
        Call<DocumentModel> call = service.GetDocumentList(operation,sessionId,module,record);
        /**Log the URL called*/
        Log.i("URL Called",call.request().url() + "");
        call.enqueue(new Callback<DocumentModel>() {
            @Override
            public void onResponse(Call<DocumentModel> call,Response<DocumentModel> response) {
                Log.e("response",new Gson().toJson(response.body()));
                if (response.isSuccessful()) {
                    Log.e("response",new Gson().toJson(response.body()));
                    DocumentModel documentModel = response.body();
                    // Gson g = new Gson();
                    //String jsonAllDocuments = g.toJson(documentModel);
                    //  tinyDB.putString("jsonAllDocuments",jsonAllDocuments);
                    String success = documentModel.getSuccess();
                    if (success.equals("true")) {
                        ClosedwonResults closedwonResults = documentModel.getResult();
                        panModel = closedwonResults.getPan();
                        id = panModel.getId();
                        Log.d("docid",id);
                        filename = panModel.getFilename();
                        Log.d("filename",filename);
                        path = panModel.getPath();
                        Log.d("path",path);

                        GSTModel gstModel=closedwonResults.getGst();
                            gstId = gstModel.getId();
                            gstFilename=gstModel.getFilename();
                            gstpath=gstModel.getPath();
                            Purchase_orderModel purchase_orderModel=closedwonResults.getPurchase_order();
                        purchaseId=purchase_orderModel.getId();
                        purchaseFilename=purchase_orderModel.getFilename();
                        purchasePath=purchase_orderModel.getPath();

                        AdharModel adharModel=closedwonResults.getAdhar();
                        adharId=adharModel.getId();
                        adharFilename=adharModel.getFilename();
                        adharPath=adharModel.getPath();


                        ChecqueModel checqueModel=closedwonResults.getChecque();
                        checqueId=checqueModel.getId();
                        checqueFilename=checqueModel.getFilename();
                        checquepath=checqueModel.getPath();

                        Doc_oneModel doc_oneModel = closedwonResults.getDoc_one();
                        doc_oneid = doc_oneModel.getId();
                        Log.d("doc_oneid",doc_oneid);
                        doc_onefilename = doc_oneModel.getFilename();
                        Log.d("doc_onefilename",doc_onefilename);
                        doc_onepath = doc_oneModel.getPath();
                        Log.d("doc_onepath",doc_onepath);
                        Doc_twoModel doc_twoModel = closedwonResults.getDoc_two();
                        doc_twoid = doc_twoModel.getId();
                        Log.d("doc_twoid",doc_twoid);
                        doc_twofilename = doc_twoModel.getFilename();
                        Log.d("doc_twofilename",doc_twofilename);
                        doc_twopath = doc_twoModel.getPath();
                        Log.d("doc_twopath",doc_twopath);
                        docModel = new DocModel(filename,adharFilename,gstFilename,purchaseFilename,checqueFilename,doc_onefilename,doc_twofilename,path,adharPath,gstpath,checquepath,purchasePath,doc_onepath,doc_twopath);
                        closedwonList.add(docModel);



                    }
                  //  DocModel docModel1=closedwonList.get(position);
                    documentIDS = docModel.getFilename() + "," + docModel.getDoc_onefilename() + "," + docModel.getDoc_twofilename() + "," +
                            docModel.getAdharfilename() + "," + docModel.getChecquefilename() + "," + docModel.getGstfilename() + "," + docModel.getPurchasefilename();
                    Paths=docModel.getPath()+","+docModel.getGstpath()+","+docModel.getChecquepath()+","+
                            docModel.getAdharpath()+","+docModel.getPurchasepath()+","+docModel.getDoc_onepath()+","+docModel.getDoctwopath();



                    String[] stringArray2 = {"PAN","AADHAR","GST","PURCHASE ORDER","CHECQUE","dOC ONE","DOC TWO"};
                    TableRow tbrowdoc = new TableRow(getContext());
                    Resources resourcedoc = getContext().getResources();
                    tbrowdoc.setLayoutParams(getLayoutParams());
                    tbrowdoc.addView(getTextView(0,"Title",Color.WHITE,resourcedoc.getColor(R.color.tabs1)));
                    tbrowdoc.addView(getTextView(0,"File Name","View/Download",resourcedoc.getColor(R.color.tabs1)));
                    documents.addView(tbrowdoc,getLayoutParams());

                    String[] IDSList = documentIDS.split(",");
                    String[] PathList=Paths.split(",");
                   url="http://XXXXXXX/".concat(String.valueOf(PathList));

                    int arrayDoc = stringArray2.length;
                    for (int i = 0; i < arrayDoc; i++) {

                        final TableRow tbrowdocdetails = new TableRow(getContext());
                        tbrowdocdetails.setLayoutParams(getLayoutParams());

                        tbrowdocdetails.addView(getTextView(i + arrayDoc,stringArray2[i],Color.BLACK,ContextCompat.getColor(getContext(),R.color.back_blue)));
                        tbrowdocdetails.addView(getTextView(i + arrayDoc,IDSList[i],R.color.back_blue)));
                        tbrowdocdetails.addView(getTextView1(i + arrayDoc,"Preview",R.color.back_blue),position));


                        documents.addView(tbrowdocdetails);
                    }
                }
                else{
                    Toast.makeText(getContext(),"Something went wrong",Toast.LENGTH_LONG).show();
                }
            }
            @Override
            public void onFailure(Call<DocumentModel> call,Throwable t) {
                Log.d("error",t.getMessage());
            }
        });

private TextView getTextView1(int id,final String title,int color,int bgColor,final int position) {
        lblClick = new TextView(getContext());
        lblClick.setId(id);
        lblClick.setText(title.toLowerCase());
        lblClick.setTextColor(color);
        lblClick.setGravity(Gravity.CENTER);
        lblClick.setPadding(10,10,10);
        lblClick.setBackgroundColor(bgColor);
        lblClick.setTag(url);
        lblClick.setLayoutParams(getLayoutParams());
        lblClick.setonClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                String path=v.getTag().toString();
                Toast.makeText(getContext(),Toast.LENGTH_LONG).show();

                myPDfItemClick(position);
            }
        });


        return lblClick;
    }

方法

@Override
    public void myPDfItemClick(int position) {

        ActivityCompat.requestPermissions(getActivity(),PERMISSIONS,112);


        if (!hasPermissions(getContext(),PERMISSIONS)) {

            Log.v(TAG,"download() Method DON'T HAVE PERMISSIONS ");

            Toast t = Toast.makeText(getContext().getApplicationContext(),"You don't have read access !",Toast.LENGTH_LONG);
            t.show();

        } else {
            File d = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);  // -> filename = maven.pdf
            String url_path = listSalesstageOpportunity.get(position).getPdf_link();
            ///Log.d("url_path",url_path);
            String file_name = url_path.substring(url_path.lastIndexOf('/') + 1);
            //Log.d("file_name",file_name);
            File pdfFile = new File(d,file_name);

            Log.v(TAG,"view() Method pdfFile " + pdfFile.getAbsolutePath());

            if (pdfFile != null) {

                Uri path = GenericFileProvider.getUriForFile(getActivity(),BuildConfig.APPLICATION_ID + ".provider",pdfFile);


                Log.v(TAG,"view() Method path " + url_path);

                Intent pdfIntent = new Intent(Intent.ACTION_VIEW);
                pdfIntent.setDataAndType(path,"application/pdf");
                pdfIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                pdfIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

                try {
                    startActivity(pdfIntent);
                } catch (ActivityNotFoundException e) {
                    Toast.makeText(getActivity(),"No Application available to view PDF",Toast.LENGTH_SHORT).show();
                }
                //  }
            }
            Log.v(TAG,"view() Method completed ");
            // download(v);

        }
        download(position);
        request(position);


    }

    public void request(int position) {

        ActivityCompat.requestPermissions(getActivity(),112);

    }

    public void download(int position) {
        Log.v(TAG,"download() Method invoked ");
        ActivityCompat.requestPermissions(getActivity(),112);

        if (!hasPermissions(getContext(),"You don't have write access !",Toast.LENGTH_LONG);
            t.show();

        } else {
            Log.v(TAG,"download() Method HAVE PERMISSIONS ");
            String url_path = listSalesstageOpportunity.get(position).getPdf_link();
            Log.d("url_path",url_path);
            String file_name = url_path.substring(url_path.lastIndexOf('/') + 1);
            Log.d("file_name",file_name);

            new DownloadFile().execute(url_path,file_name);

        }

        Log.v(TAG,"download() Method completed ");

    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)