2

Я пытаюсь создать проект, в котором мне нужно приложение для чтения локально файлов pdf, doc, xls.Как читать локальные файлы Pdf, XlS, DOC в android

У меня нет никакой идеи о том, как это сделать. Я хочу показать все локально сохраненные файлы в своем веб-просмотре. Есть ли библиотека для рендеринга этих файлов или любого другого способа сделать это? Если кто-то может направить меня на это, это будет моим удовольствием.

+0

Пожалуйста, сначала изучите эту тему и укажите, где именно вы застряли .... – GAMA

+0

Я умею читать pdf, doc, xl с помощью стороннего приложения (офис Kingsoft) .. но я хочу прочитать этот файл на веб-просмотре для этого понадобится любая сторонняя банка, которая предложит мне. –

+0

см. Http://stackoverflow.com/questions/3831019/how-to-read-a-pdf-in-android – GAMA

ответ

0
package com.cdn.file; 

import java.io.File; 
import java.io.FilenameFilter; 
import java.util.ArrayList; 
import java.util.List; 

import android.app.Activity; 
import android.content.Context; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.os.Environment; 
import android.util.Log; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.BaseAdapter; 
import android.widget.Button; 
import android.widget.ImageView; 
import android.widget.ListAdapter; 
import android.widget.ListView; 
import android.widget.TextView; 
import android.widget.Toast; 

public class FileExplorerActivity extends Activity { 
    /** Called when the activity is first created. */ 
    private Button buttonList, buttonBack; 
    // Stores names of traversed directories 
    ArrayList<String> str = new ArrayList<String>(); 
    // Check if the first level of the directory structure is the one showing 

    private static final String TAG = "F_PATH"; 
    private List<Item> fileList; 
    private Item item; 
    private File path = new File(Environment.getExternalStorageDirectory() + ""); 
    private String chosenFile = ""; 

    ListView listViewDir; 
    ListAdapter adapter; 
    ListFile listFileAdaptor; 
    int value = 0; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     listViewDir = (ListView) findViewById(R.id.listViewDir); 

     buttonBack = (Button) findViewById(R.id.buttonBack); 
     buttonBack.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 


      } 
     }); 

     buttonList = (Button) findViewById(R.id.buttonList); 
     buttonList.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 

       if (isSdPresent()) { 
        Toast.makeText(FileExplorerActivity.this, "Un Mounted", 
          Toast.LENGTH_SHORT).show(); 
        loadFileList(); 
        listFileAdaptor = new ListFile(FileExplorerActivity.this, 
          fileList); 
        listViewDir.setAdapter(listFileAdaptor); 


       } 

       else { 
        Toast.makeText(FileExplorerActivity.this, "Mounted", 
          Toast.LENGTH_SHORT).show(); 
       } 

      } 

     }); 

     listViewDir.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> parent, View view, 
        int position, long id) { 
      // if (value == 0) { 
        chosenFile = fileList.get(position).getFile(); 
       /*} else { 
        chosenFile = backList.get(position).getFile(); 
        value =0; 
       }*/ 
       File sel = new File(path + "/" + chosenFile); 

       Log.v("Prashant111 ==", sel.toString()); 
       Log.v("Prashant222 ==", "" + sel.toURI()); 

       if (sel.isDirectory()) { 

        // Adds chosen directory to list 
        str.add(chosenFile); 

        path = new File(sel + ""); 

        loadFileList(); 
        listFileAdaptor = new ListFile(FileExplorerActivity.this, 
          fileList); 
        listViewDir.setAdapter(listFileAdaptor); 


        // Log.d(TAG, path.getAbsolutePath()); 

        Log.d("Prashant333 ==", "" + path.toURI()); 

        Log.d("Prashant444 ==", "" + path.toString()); 

       } 

       // Checks if 'up' was clicked 

       // File picked 
       else { 
        Intent intent = new Intent(Intent.ACTION_VIEW); 
        Uri uri = Uri.fromFile(new File(chosenFile)); 
        intent.putExtra(Intent.ACTION_VIEW, uri); 
        Intent chooser = Intent.createChooser(intent, "Prashant"); 
        startActivity(chooser); 

       } 

      } 
     }); 
    } 

    public static boolean isSdPresent() { 
     return android.os.Environment.getExternalStorageState().equals(
       android.os.Environment.MEDIA_MOUNTED); 

    } 

    private class Item { 
     public String file; 
     public int icon; 

     public String getFile() { 
      return file; 
     } 

     public void setFile(String file) { 
      this.file = file; 
     } 

     public int getIcon() { 
      return icon; 
     } 

     public void setIcon(int icon) { 
      this.icon = icon; 
     } 

    } 

    private void loadFileList() { 
     try { 
      path.mkdirs(); 
     } catch (SecurityException e) { 
      Log.e(TAG, "unable to write on the sd card "); 
     } 

     // Checks whether path exists 
     if (path.exists()) { 
      FilenameFilter filter = new FilenameFilter() { 
       @Override 
       public boolean accept(File dir, String filename) { 
        File sel = new File(dir, filename); 
        // Filters based on whether the file is hidden or not 
        return (sel.isFile() || sel.isDirectory()) 
          && !sel.isHidden(); 

       } 
      }; 

      String[] fList = path.list(filter); 
      fileList = new ArrayList<FileExplorerActivity.Item>(); 

      for (int i = 0; i < fList.length; i++) { 
       item = new Item(); 
       item.setIcon(R.drawable.file_icon); 
       item.setFile(fList[i]); 
       // fileList.add(item); 
       // Convert into file path 
       File sel = new File(path, fList[i]); 

       Log.v("sel ====", sel.toString()); 

       String name = sel.getName(); 

       // Set drawables 
       if (sel.isDirectory()) { 
        item.setFile(name); 
        item.setIcon(R.drawable.directory_icon); 
        fileList.add(item); 

       } else { 
        if (name.endsWith(".mp4") || name.endsWith(".3gp")) { 
         Log.v("aaaaaaaaaaa", name); 
         item.setFile(name); 
         item.setIcon(R.drawable.icon); 
         fileList.add(item); 
        } else { 

         fileList.remove(item); 
        } 
       } 
      } 

     } else { 
      Log.e(TAG, "path does not exist"); 
     } 

    } 

    class ViewHolder { 
     TextView textViewName; 
     ImageView view; 
    } 

    class ListFile extends BaseAdapter { 
     List<Item> fileList; 
     private LayoutInflater inflator; 
     Context context; 

     ListFile(Context context, List<Item> fileList) { 
      this.fileList = fileList; 
      this.context = context; 
      inflator = (LayoutInflater) context 
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     } 

     @Override 
     public int getCount() { 

      return fileList.size(); 
     } 

     @Override 
     public Object getItem(int position) { 

      return fileList.get(position); 
     } 

     @Override 
     public long getItemId(int position) { 

      return position; 
     } 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      ViewHolder holder; 
      if (convertView == null) { 
       if (getItemViewType(position) == 0) { 
        convertView = inflator.inflate(R.layout.file_list, null); 
       } 

       holder = new ViewHolder(); 

       holder.textViewName = (TextView) convertView 
         .findViewById(R.id.textView1); 
       holder.view = (ImageView) convertView 
         .findViewById(R.id.imageView1); 

       convertView.setTag(holder); 
       // Set the display text 
      } else { 
       holder = (ViewHolder) convertView.getTag(); 
      } 
      holder.textViewName.setText(fileList.get(position).getFile()); 

      holder.view.setImageResource((fileList.get(position).getIcon())); 

      return convertView; 
     } 
    } 
} 

Пробуйте использовать этот код. Я беру видеофайлы, но вы можете указать тип файлов, которые вы хотите.

Смежные вопросы