2016-08-12 66 views
0

這可能非常簡單,但是,我想要顯示SD卡上的所有錄製文件,並且其中任何一個應該播放onclick,並且onlongclick它應該顯示共享和刪除的選項。目前這些文件出現,但我無法播放它或onlongclick。 任何幫助,將不勝感激。如何在以下代碼中添加onClick和onLongClick

public class MainActivity extends Activity { 

private File root; 
private ArrayList<File> fileList = new ArrayList<File>(); 
private LinearLayout view; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    view = (LinearLayout) findViewById(R.id.view); 

    //getting SDcard root path 
    root = new File(Environment.getExternalStorageDirectory() 
      .getAbsolutePath()); 
    getfile(root); 

    for (int i = 0; i < fileList.size(); i++) { 
     TextView textView = new TextView(this); 
     textView.setText(fileList.get(i).getName()); 
     textView.setPadding(5, 5, 5, 5); 

     System.out.println(fileList.get(i).getName()); 

     if (fileList.get(i).isDirectory()) { 
      textView.setTextColor(Color.parseColor("#FF0000")); 
     } 
     view.addView(textView); 
    } 

} 

public ArrayList<File> getfile(File dir) { 
    File listFile[] = dir.listFiles(); 
    if (listFile != null && listFile.length > 0) { 
     for (int i = 0; i < listFile.length; i++) { 

      if (listFile[i].isDirectory()) { 
       fileList.add(listFile[i]); 
       getfile(listFile[i]); 

      } else { 
       if (listFile[i].getName().endsWith(".png") 
         || listFile[i].getName().endsWith(".jpg") 
         || listFile[i].getName().endsWith(".jpeg") 
         || listFile[i].getName().endsWith(".gif")) 

       { 
        fileList.add(listFile[i]); 
       } 
      } 

     } 
    } 
    return fileList; 
} 

} 

回答

2
view.addView(textView); 
view.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

      } 
     }); 
     home.setOnLongClickListener(new View.OnLongClickListener() { 
      @Override 
      public boolean onLongClick(View v) { 

       // your code 
       return false; 
      } 
     }); 
+0

@kunal試試這個代碼。 –

+0

感謝您的回覆Sohail,我成功實施了onClick部分,但如果您還可以提供關於onLongclick的刪除和共享選項的更多信息,我會對您感到非常滿意。 –

+0

@KunalYadav請打勾並投票,如果有幫助,併發布其他問題與您的新問題,併發送其鏈接給我,但首先嚐試你最好的快樂編碼:) –

0

只需添加在您的循環:

private File root; 
private ArrayList<File> fileList = new ArrayList<File>(); 
private LinearLayout view; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    view = (LinearLayout) findViewById(R.id.view); 

    //getting SDcard root path 
    root = new File(Environment.getExternalStorageDirectory() 
      .getAbsolutePath()); 
    getfile(root); 

    for (int i = 0; i < fileList.size(); i++) { 
     TextView textView = new TextView(this); 
     textView.setText(fileList.get(i).getName()); 
     textView.setPadding(5, 5, 5, 5); 

     textView.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       File file = fileList.get(i); 
       System.out.println(file.getName() + " NORMALCLICK"); 
      } 
     }); 
     textView.setOnLongClickListener(new View.OnLongClickListener() { 
      @Override 
      public boolean onLongClick(View v) { 
       File file = fileList.get(i); 
       System.out.println(file.getName() + " LONGCLICK"); 
       return false; 
      } 
     }); 


     System.out.println(fileList.get(i).getName()); 

     if (fileList.get(i).isDirectory()) { 
      textView.setTextColor(Color.parseColor("#FF0000")); 
     } 
     view.addView(textView); 
    } 

} 

public ArrayList<File> getfile(File dir) { 
    File listFile[] = dir.listFiles(); 
    if (listFile != null && listFile.length > 0) { 
     for (int i = 0; i < listFile.length; i++) { 

      if (listFile[i].isDirectory()) { 
       fileList.add(listFile[i]); 
       getfile(listFile[i]); 

      } else { 
       if (listFile[i].getName().endsWith(".png") 
         || listFile[i].getName().endsWith(".jpg") 
         || listFile[i].getName().endsWith(".jpeg") 
         || listFile[i].getName().endsWith(".gif")) 

       { 
        fileList.add(listFile[i]); 
       } 
      } 

     } 
    } 
    return fileList; 
} 
+0

謝謝babadaba,我會很感激你,如果你也可以提供有關onLongclick的刪除和共享選項的一些信息。 –

+0

尋求一個新的問題。或者嘗試查找contextmenu並分享android的意圖。如果我的答案幫助了你,請注意,如果你不介意的話:) – babadaba

+0

我還沒有足夠的代表積極投票,兩個答案都是一樣的,並幫助我。 –

相關問題