我在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。
非常感谢任何答案!
答案 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”...等等......
编辑:代码仅供参考,请勿复制并粘贴...