2016-04-05 20 views
0

Sorunum var. Kullanıcı düğmeye bastığında pdf dosyasının PDF Reader'da açılacağı bir şey yapmaya çalışıyorum. Her şeyi programa yazarım ama işe yaramıyor. Sorun nedir? Bana doğru bir kod yazabilir misin? Her şeyi kırılganlıkta yapıyorum. Kodum:Pdf dosyasını PDF Reader'daki ham klasörden açın.

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; 
} 

}

cevap

0

Birkaç sorunları var.

İlk olarak, R.id.matematika bir dosya değil. Bu bir kaynağın kimliğidir. Kaynak, yalnızca geliştirme makinenizdeki bir dosyadır. Bir Android cihazda new File("R.id.matematika") anlamsızdır.

İkincisi, kullanabileceğiniz bir android.resource:Uri şeması olsa da, birkaç uygulama bunu destekler.

Üçüncüsü, ham kaynağı bir dosyaya kopyaladığınızda, dosyayı support for that is fading away açabilirsiniz.

Birincil seçimler şunlardır:

+0

Bu yüzden, kaynakların internette bir dosyaya kopyalanması gerektiğini düşünüyorum al depolama daha kolay ve belki yazabilirsiniz, bu kod üzerinde bunu nasıl yapabilirim? :) – iBoucher