5

W moim istniejącego Androida im przy MuPDF, którą przeniesiony z pomocą this doc. Teraz, gdy chcę otworzyć pliki pdf wewnątrz aktywności używam: Uri uri = Uri.parse (ścieżka);MuPDF dla Androida: Opcja dla fragmentu zamiast Aktywny

  Intent intent = new Intent(this, MuPDFActivity.class); 
      intent.setAction(Intent.ACTION_VIEW); 
      intent.setData(uri); 
      startActivity(intent); 

który wystrzeliwuje nowej działalności, Mój problem polega na: (1) Jak mogę zacząć Fragment do pdf? (2) Czy MuPDF obsługuje Fragment, który mogę wywołać w mojej porzeczce Android-Tab-View? (3) Czy istnieje sposób konwertowania tej czynności na fragment?

Obecnie robię:

public class DummySectionFragment extends Fragment { 

     public DummySectionFragment() { 
     } 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
      View rootView = null; 

      rootView = inflater.inflate(R.layout.activity_dummy_section_fragment, container, false); 

      Intent myIntent = new Intent(getActivity(), MuPDFActivity.class); 
      myIntent.setAction(Intent.ACTION_VIEW); 
      myIntent.setData(uri); 
      getActivity().startActivity(myIntent); 

      return rootView; 
     } 
} 

których: otwiera nową aktywność na karcie Widok mojego obecnego układu, który nie wyglądają wspaniale, gdyż obejmuje cały układ tab i użytkownik musiał kliknąć przycisk, aby zobaczyć BACK widok kart.

Odpowiedz

4

Może nie powinieneś używać funkcji MuPDFActivity w swoim projekcie - to tylko przykład jak działa Mupdf. Wszystko czego potrzebujesz to MuPDFReaderView/MuPDFCore/MuPDFPageAdapter. MuPDFReaderView rozciąga się od View/ViewGroup, więc możesz po prostu dodać go do swojego układu. Spróbuj go tak (całkowicie niesprawdzone !!):

1.) XML -> Układ bazowy dla fragmentu (mupdf_wrapper.xml):

<RelativeLayout 
    android:id="@+id/mupdf_wrapper" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 
</RelativeLayout> 

2.) JAVA:

public class DummySectionFragment extends Fragment { 

    public DummySectionFragment() { 
    } 

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

     View rootView = null; 

     rootView = inflater.inflate(R.layout.mupdf_wrapper, container, false); 
     RelativeLayout mupdfWrapper (RelativeLayout)rootView.findViewById(R.id.mupdf_wrapper); 
     String path = "path/To/Your/PDF/File.pdf"; 
     MuPDFCore core = new MuPDFCore(getActivity(), path); 
     MuPDFReaderView mDocView = new MuPDFReaderView(getActivity()); 
     mDocView.setAdapter(new MuPDFPageAdapter(getActivity(), getActivity(), core)); 
     mupdfWrapper .addView(mDocView, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); 
     return rootView; 
    } 

}

1

Konwersja aktywność do fragmentu:

public class a extend activity{ 

    public void oncreate(Bundle Saveinstance) 
    { 
    super.oncreate(saveinstance); 
    setcontentview(r.layout.xyz); 
    }  
    } 

... Konwersja:

public class a extend fragment{ 


public void onstart() 
{ 
super.onstart(); 

} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 


    return inflater.inflate(com.example.login.R.layout.fragment, container, false); 

} 
} 

Jeśli masz funkcji lub chcesz zrobić tosty, i masz xyz.this zastąpić go getActivity()

Toast.makeText(xyz.this, e.getMessage(),Toast.LENGTH_LONG).show(); 
Toast.makeText(getActivity(), e.getMessage(),Toast.LENGTH_LONG).show();