2012-03-03 9 views
14

Đang tìm kiếm hướng dẫn để hiển thị tất cả các tệp và thư mục trong danh sách xem .. nhưng tôi không nhận được bất kỳ điều gì .. Có ai ở đây biết rằng làm cách nào tôi có thể hiển thị tất cả các thư mục và tập tin của Dropbox vào listview của tôi .. Vì vậy mà khi tôi bấm vào bất kỳ tập tin .. Sau đó tập tin bắt đầu tải về ..Liệt kê tất cả thư mục và tệp của Dropbox bằng cách sử dụng API Dropbox

Tôi biết ở đây là làm thế nào để tải về một tập tin từ Dropbox, nhưng cho rằng Tôi cần đặt tên tệp đó vào mã của tôi theo cách tĩnh ..

Tôi cũng sẽ chỉ sử dụng bộ lọc cho tệp .csv ... nhưng tôi muốn hiển thị tất cả các tệp trong một listview.

Cảm ơn ..

+0

tôi quá cần cùng .. –

Trả lời

20
  String[] fnames = null; 
      Entry dirent = mApi.metadata("/", 1000, null, true, null); 
      ArrayList<Entry> files = new ArrayList<Entry>(); 
      ArrayList<String> dir=new ArrayList<String>(); 
      for (Entry ent: dirent.contents) 
      { 
       files.add(ent);// Add it to the list of thumbs we can choose from      
       //dir = new ArrayList<String>(); 
       dir.add(new String(files.get(i++).path)); 
      } 
      i=0; 
      fnames=dir.toArray(new String[dir.size()]); 

      return fnames; 

Đây là những gì tôi sử dụng. một khi bạn có các tên gọi stringarray, bạn có thể hiển thị nó trong một listview.

Bạn có thể hiển thị nó trong một GridView như thế này

final GridView gv=(GridView)temp.findViewById(R.id.gridView1); 
ArrayAdapter<String> ad = new ArrayAdapter<String>(mContext, android.R.layout.simple_list_item_1,fnames); 
gv.setBackgroundColor(Color.BLACK); 
gv.setNumColumns(3); 
gv.setGravity(Gravity.CENTER); 
gv.setAdapter(ad); 
    gv.setBackgroundResource(R.drawable.black_cloud1); 
gv.setOnItemClickListener(new OnItemClickListener() { 
        public void onItemClick(AdapterView<?> arg0, View arg1, 
          int arg2, long arg3) { 
         // TODO Auto-generated method stub 
         Toast.makeText(mContext,gv.getItemAtPosition(arg2).toString(),Toast.LENGTH_SHORT).show(); 

         temp.setData(fnames,gv.getItemAtPosition(arg2).toString()); 

         return; 
        } 

        }); 
+0

MApi ở đây là gì.Có thể bạn cung cấp cho tôi bản demo mẫu. – shailesh

+0

@AmelJose tôi ở đây là gì? – NarendraJi

+0

@shailesh AppKeyPair appKeys = new AppKeyPair (APP_KEY, APP_SECRET); Phiên AndroidAuthSession = AndroidAuthSession mới (khóa ứng dụng); DropboxAPI mApi = new DropboxAPI <> (phiên); – NarendraJi

3

Hãy thử mã này vào danh sách các file ..... Tôi không biết nhiều về Dropbox, hãy thử nó

Entry contact = mDBApi.metadata("/", 0, null, true, null); 

    List<Entry> CFolder = contact.contents; 
    for (Entry entry : CFolder) { 
    Log.i("DbExampleLog", "Filename: " + entry.fileName());} 
+0

là gì mDBApi xin vui lòng rõ ràng hoặc cung cấp cho bất kỳ liên kết cho dự án demo – shailesh

+0

@shailesh Tôi biết nó trễ: DropboxAPI mDBApi – Lunchbox

-1

xin vui lòng sử dụng thế này, nó là api mới nhất .....

public void login(String accessToken) { 
     DbxRequestConfig requestConfig = DbxRequestConfig.newBuilder("ManualApp") 
       .withHttpRequestor(OkHttp3Requestor.INSTANCE) 
       .build(); 
     mDbxClient = new DbxClientV2(requestConfig, accessToken); 
    } 

    public List<Metadata> getListFile(String path) { 

     if (mDbxClient == null) { 
      RkLogger.e("get files error", "must login first please"); 
      return null; 
     } 

     try { 
      return mDbxClient.files().listFolder(path).getEntries(); 
     } catch (DbxException e) { 
      RkLogger.e("DbxException ", e.toString()); 
      return null; 
     } 

    }