将URL解析为其他Activity以从该URL加载PDF

时间:2017-07-26 00:16:36

标签: java android-studio pdf url android-activity

我在app中有两个活动。一个有3个按钮,另一个有来自github的PDFView" com.github.barteksc:android-pdf-viewer:2.6.1"我正在尝试从此代码中加载来自url的pdf。它对我有用

public class PDFActivity extends AppCompatActivity {

    PDFView pdfView;

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

        pdfView = (PDFView) findViewById(R.id.pdfview);

        new RetrievePDFStream().execute("my url to load pdf example http://sample.com/xyz.pdf");

    }


    class RetrievePDFStream extends AsyncTask<String, Void, InputStream>
    {

        @Override
        protected InputStream doInBackground(String... strings) {
            InputStream inputStream = null;
            try
            {
                URL url = new URL(strings[0]);
                HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();
                if(urlConnection.getResponseCode() == 200)
                {
                    inputStream = new BufferedInputStream(urlConnection.getInputStream());
                }
            }
            catch (IOException e)
            {
                return null;
            }
            return inputStream;
        }

        @Override
        protected void onPostExecute(InputStream inputStream) {
            pdfView.fromStream(inputStream);
        }
    }
}

这很好,但是我必须从其他网址的活动1加载另一个pdf,以更改该网址&#34; new RetrievePDFStream&#34;当我点击按钮1在此活动中加载另一个pdf时,按钮2从此活动中加载另一个pdf。

非常感谢任何答案!

1 个答案:

答案 0 :(得分:1)

如果我理解正确,你有3个按钮和两个活动 在ack1中你有3个按钮,在ack2你有pdf查看器。因此,如果我点击ack1 button1你想从ack2加载url1,如果我点击ack1 button2你想加载url2表单ack2等等.... 如果这是要求,那么你可以使用intent extras。 表格ack1执行此操作:

button1.onclick(new onclicklistener{
   publi void onClick(){
        Intent intent=new Intent(this,ack2.class);
        intent.putExtras("url","pdf url1");
    }}

对于button2 jst将“pdf url1”更改为“pdf url2”
对于button3 jst,将“pdf url1”更改为“pdf url3”

在ack2中这样做:         在onCreate()方法中:

    Intent i=this.getIntent();
    String url=i.getExtras("url");

从这里开始,您将获得根据您点击的按钮传递的第一个活动的网址。如果用户单击按钮1,您将获得“pdf url1”,如果他在按钮2上显示您将获得“pdf url2”...等等......

编辑:代码仅供参考,请勿复制并粘贴...