2016-04-05 4 views
0

Ich habe ein Problem. Ich versuche eine Sache zu machen, dass, wenn der Benutzer auf die Schaltfläche drückt, die PDF-Datei in PDF Reader geöffnet wird. Ich schreibe alles im Programm, aber es funktioniert nicht. Was ist das Problem? Kannst du mir einen Code richtig schreiben? Ich mache alles in Frage. Mein Code:Öffnen Sie die PDF-Datei aus dem Rohordner im PDF-Reader

package lt.sviesioji.kdainiviesiojigimnazija; 

import android.content.ActivityNotFoundException; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentTransaction; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.Button; 
import java.io.File; 
import java.io.InputStream; 


/** 
* A simple {@link Fragment} subclass. 
*/ 
public class FormulynasFragment extends Fragment { 

public FormulynasFragment() { 
} 

Button f; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    int backButtonCount = getFragmentManager().getBackStackEntryCount(); 

    if (backButtonCount > 0) { 
     Fragment newFragment = new PagrindinisFragment(); 
     FragmentTransaction transaction = getFragmentManager().beginTransaction(); 
     transaction.replace(R.id.fragment_container, newFragment); 
     transaction.addToBackStack(null); 
     transaction.commit(); 
    } 

    final View rootView = inflater.inflate(R.layout.fragment_formulynas, container, 
      false); 

    f = (Button) rootView.findViewById(R.id.button69); 
    f.setOnClickListener(new View.OnClickListener() { 
     InputStream is = getResources().openRawResource(R.raw.matematika); 

     @Override 
     public void onClick(View v) { 
      startpdf(); 
     } 
     private void startpdf() { 
      // TODO Auto-generated method stub 

      File file = new File("R.id.matematika"); 

      if (file.exists()) { 
       Uri path = Uri.fromFile(file); 
       Intent intent = new Intent(Intent.ACTION_VIEW); 
       intent.setDataAndType(path, "application/pdf"); 
       intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

       try { 
        startActivity(intent); 
       } 
       catch (ActivityNotFoundException e) { 

       } 
      } 
     } 
    }); 
    return rootView; 
} 

}

Antwort

0

Sie haben ein paar Probleme.

Zunächst ist R.id.matematika keine Datei. Das ist die ID einer Ressource. Eine Ressource ist eine Datei nur auf Ihrem Entwicklungscomputer. new File("R.id.matematika") ist auf einem Android-Gerät bedeutungslos.

Zweitens, während es ein android.resource:Uri Schema gibt, das Sie verwenden könnten, unterstützen nur wenige Apps es. Wenn Sie die rohe Ressource in eine Datei kopieren können, öffnen Sie die Datei support for that is fading away.

Ihre primäre Auswahl stehen:

+0

Also, ich denke, dass die Ressource in eine Datei auf intern kopieren al-Speicher ist einfacher und vielleicht kannst du schreiben, wie kann ich das mit diesem Code machen? :) – iBoucher

Verwandte Themen