如何指定每个按钮以从资源文件夹中打开pdf文件

时间:2018-04-18 22:05:04

标签: java android android-layout button

您好,我的目标是创建一个带有五个按钮的应用程序,打开五本书pdf,每个人开一个不同的活动。

MainActivity类

public void onClick(View v) {
    switch (v.getId())
    {
        case R.id.btn1:
            x=1;
                Intent i = new Intent(MainActivity.this, Pdf_Activity.class);
                startActivity(i);
            break;
        case R.id.btn2:
            x=2;
            Intent i2=new Intent(MainActivity.this,Pdf_Activity.class);
            startActivity(i2);
            break;
        case R.id.btn3:
            x=3;
            Intent i3=new Intent(MainActivity.this,Pdf_Activity.class);
            startActivity(i3);
            break;
        case R.id.btn4:
            x=4;
            Intent i4=new Intent(MainActivity.this,Pdf_Activity.class);
            startActivity(i4);
            break;
        case R.id.btn5:
            x=5;
            Intent i5=new Intent(MainActivity.this,Pdf_Activity.class);
            startActivity(i5);
            break;
            default:
                break;
    }

我想在按钮中打开pdf文件 这是" pdf_Activity" :

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.content_pdf);
   switch (main.x)
   {
       case (1):
           pdf1=(PDFView) findViewById(R.id.pdf1);
           pdf1.fromAsset("insani.pdf").load();
           break;
       case (2):
           pdf2=(PDFView) findViewById(R.id.pdf2);
           pdf2.fromAsset("kawniya.pdf").load();
           break;
       case (3):
           pdf3=(PDFView) findViewById(R.id.pdf3);
           pdf3.fromAsset("3ilm.pdf").load();
           break;
       case (4):
           pdf4=(PDFView) findViewById(R.id.pdf4);
           pdf4.fromAsset("9iyam.pdf").load();
           break;
       case (5):
           pdf5=(PDFView) findViewById(R.id.pdf5);
           pdf5.fromAsset("a5la9.pdf").load();
           break;
           default:
               break;
   }

我认为这两个代码存在一些问题。请帮助

2 个答案:

答案 0 :(得分:0)

我会将onClick中的开关更改为:

Intent i = new Intent(MainActivity.this, Pdf_Activity.class);
switch (v.getId())
{
    case R.id.btn1:
        i.putExtra("file",1);
            startActivity(i);
        break;
    case R.id.btn2:
        i.putExtra("file",2);
        startActivity(i);
        break;
    case R.id.btn3:
        i.putExtra("file",3);
        startActivity(i);
        break;
    case R.id.btn4:
        i.putExtra("file",4);
        startActivity(i);
        break;
    case R.id.btn5:
        i.putExtra("file",5);
        startActivity(i);
        break;
        default:
            break;
}

然后在pdf_activity中使用它:

Bundle bundle = getIntent().getExtras();
int x = bundle.getInt("file");

switch (x)
{
...
}

答案 1 :(得分:0)

我认为问题出在pdf文件的XML文件中

    <LinearLayout
        android:id="@+id/linearLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
<com.github.barteksc.pdfviewer.PDFView
            android:id="@+id/pdf1"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
<com.github.barteksc.pdfviewer.PDFView
            android:id="@+id/pdf2"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
<com.github.barteksc.pdfviewer.PDFView
            android:id="@+id/pdf3"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
.......................
....................
</LinearLayout>

</LinearLayout>