我想让项目适应玩家。我怎样才能让它看起来只是视频文件。 其他文件,如txt等apk不打开它们或不显示它们。 谢谢。
代码:
public class MainActivity extends ListActivity {
private List<String> item = null;
private List<String> path = null;
private String root;
private TextView myPath;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myPath = (TextView)findViewById(R.id.path);
root = Environment.getExternalStorageDirectory().getPath();
getDir(root);
}
private void getDir(String dirPath)
{
myPath.setText("Location: " + dirPath);
item = new ArrayList<String>();
path = new ArrayList<String>();
File f = new File(dirPath);
File[] files = f.listFiles();
if(!dirPath.equals(root))
{
item.add(root);
path.add(root);
item.add("../");
path.add(f.getParent());
}
for(int i=0; i < files.length; i++)
{
File file = files[i];
if(!file.isHidden() && file.canRead()){
path.add(file.getPath());
if(file.isDirectory()){
item.add(file.getName() + "/");
}else{
item.add(file.getName());
}
}
}
ArrayAdapter<String> fileList =
new ArrayAdapter<String>(this, R.layout.row, item);
setListAdapter(fileList);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
File file = new File(path.get(position));
if (file.isDirectory())
{
if(file.canRead()){
getDir(path.get(position));
}else{
new AlertDialog.Builder(this)
.setIcon(R.drawable.ic_launcher)
.setTitle("[" + file.getName() + "] folder can't be read!")
.setPositiveButton("OK", null).show();
}
}else {
new AlertDialog.Builder(this)
.setIcon(R.drawable.ic_launcher)
.setTitle("[" + file.getName() + "]")
.setPositiveButton("OK", null).show();
}
}
}
我不知道如何更改以显示sdcard中的某种类型的资源。
谢谢。
答案 0 :(得分:1)
您可以检查文件扩展是否类似.mp4
或.avi
等...
if(!file.isHidden() && file.canRead()) {
path.add(file.getPath());
if(file.isDirectory()){
item.add(file.getName() + "/");
}else{
if(isVideo(file)){
item.add(file.getName());
}
}
}
其中isVideo
类似于
bool isVideo(File file){
String filename = file.getName().toLowerCase();
String extension = filename.substring(filename.lastIndexOf("."), filename.length());
switch (extension) {
case ".3gp":
case ".mpg":
case ".mpeg":
case ".mpe":
case ".mp4":
case ".avi":
return true;
default:
return false;
}
}
答案 1 :(得分:0)
我认为content provider对您的情况有用。