2011-12-01 39 views
1

我找到了OI文件管理器源代碼的鏈接。我想這與我的應用我要創建的整合,這樣,當意圖將OI文件管理器代碼與您的應用程序集成

org.openintents.action.PICK_DIRECTORY

被調用,它應該導致顯示OI文件管理器和要求用戶選擇一個文件夾。 現在,我可以通過將OI文件管理器作爲單獨的應用程序安裝在手機上來完成此操作。但我不希望這個雙應用程序安裝過程才能使用我的應用程序。因此,告訴我如何將OI文件管理器代碼與我的應用程序鏈接起來?

這樣,OI文件管理器和我的新應用程序都可以合併爲一個.apk文件。

+0

也許這是一個粗略的解決方案...但我只是包括它在我的項目爲[庫](HTTP:// developer.android.com/tools/projects/projects-eclipse.html#SettingUpLibraryProject)。 – janot

回答

0

最初我說你不能這樣做,這是基於我去年無法做同樣的事情。現在我看到有源代碼,我假設你應該簡單地將它包含在你的項目中,並用它內部的OI Manager源代碼構建項目。然後,您可以使用以相同方式提供的意圖。

+0

http://code.google.com/p/openintents/downloads/detail?name=FileManager-source-1.1.6.zip&can=2&q=但OIfile管理器源代碼可用。我不明白爲什麼不能做。 – user838522

+0

好點:)去年我在尋找同樣的東西,當時我正在構建一個必須從SD卡上打開文件的android應用程序,我找不到如何整合它,唯一的方法就是使用意圖。有了代碼,爲什麼不把它複製到你的項目中?無論如何,你應該能夠使用意圖。 – Petar

0
This is my own Filemanager so will have problems ., try this its very simple 
keeping a listview for files 

public class Bview extends Activity{ 
    private ListView l; 
    private int i; 
    private static int stringcounter=0; 
    public static File path; 
    public static String current; 
    private static File f; 
    private static String str; 
    private static String string=Environment.getExternalStorageDirectory()+"";; 
    private static String[] stringpart; 
    ArrayList<String> appointment; 
    ArrayAdapter<String> aa; 
    protected void onCreate(Bundle savedInstanceState) { 

     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_view); 
     l=(ListView)findViewById(R.id.listView1); 
     appointment = new ArrayList<String>(); 
     stringpart=new String[10]; 
     aa = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,appointment); 
     l.setAdapter(aa); 
     List<File> files = getListFiles(new File(string)); 

     l.setOnItemClickListener(new OnItemClickListener() { 
       public void onItemClick(AdapterView<?> parent, View view, 
         int position, long id) { 
        if(position==0) 
        { 
         stringcounter--; 
         string=string.replaceAll(stringpart[stringcounter],""); 
         aa.clear(); 
         List<File> files = getListFiles(new File(string)); 
        } 
        else 
         { 
         Object o = l.getItemAtPosition(position);       
         str=(String)o; 
         string=string+"/"+str; 
         System.out.println("str"+str); 
         System.out.println(".value.."+string); 
         f=new File(string); 
         if(f.isDirectory()) 
         { 
          stringpart[stringcounter]="/"+str; 
          stringcounter++; 
          aa.clear(); 
          List<File> files = getListFiles(new File(string)); 
         } 
         else 
         { 

         Toast.makeText(getBaseContext(),str,Toast.LENGTH_SHORT).show(); 
         } 
         }     
       } 
      }); 

    } 
    @Override 
    public void onBackPressed() { 
     // TODO Auto-generated method stub 
     super.onBackPressed(); 
     System.exit(0); 
    } 
    private List<File> getListFiles(File parentDir) { 
      ArrayList<File> inFiles = new ArrayList<File>(); 
      File[] files = parentDir.listFiles(); 
      this.aa.add("Go Back"); 
      for(i=0;i<files.length;i++) 
      { 

      String filename=files[i].getName(); 
      this.aa.add(filename);   
      } 

      return inFiles; 
     } 
    } 
0

代碼不會對getBaseContext工作 報錯()

+0

請評論並解釋它給出了什麼錯誤。 – Kartoch

相關問題