java - ListView 列表图标显示
问题描述
我有一个 android 项目,它有一个活动下载文件,我希望该文件显示在列表视图中,以及根据该文件的扩展名显示一个图标,或者如果文件是 mp3,则为 mp3 封面图片
请有人帮我怎么做: -
这是我的 download.java 文件
package com.musicwala.djaman;
import android.app.Activity;
import android.os.Bundle;
import java.util.ArrayList;
import android.os.Environment;
import java.io.File;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.Arrays;
import org.json.JSONArray;
import java.util.List;
import android.app.ListActivity;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.ColorDrawable;
import android.graphics.Color;
import android.content.Intent;
import android.view.View;
import android.widget.AdapterView;
import android.view.animation.OvershootInterpolator;
import android.widget.Toast;
import android.support.v7.app.AppCompatActivity;
import android.media.MediaPlayer;
import java.io.IOException;
public class download extends ListActivity
{
ListView listView;
private File file;
private List<String> myList;
// String [] items = {"Bitcoin", "Ethereum", "LiteCoin", "Dash", "Neo", "Nano", "Bitcoin Cash", "Verge", "Ripple", "Bitcoin Diamond", "Iconomi", "Stellar Lumens"};
@Override
protected void onCreate(Bundle savedInstanceState)
{
// TODO: Implement this method
//getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setTitle("Downloads");
getActionBar().setBackgroundDrawable(new ColorDrawable(Color.GREEN));
getActionBar().setSubtitle("MusicWala");
super.onCreate(savedInstanceState);
myList = new ArrayList<String>();
String root_sd = Environment.getExternalStorageDirectory().toString();
file = new File( root_sd + "/MusicWala" ) ;
File list[] = file.listFiles();
for( int i=0; i< list.length; i++)
{
myList.add( list[i].getName() );
}
setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, myList ));
}
protected void onListItemClick(ListView l, View v, int position, long id)
{
super.onListItemClick(l, v, position, id);
File temp_file = new File( file, myList.get( position ) );
if( !temp_file.isFile())
{
file = new File( file, myList.get( position ));
File list[] = file.listFiles();
myList.clear();
for( int i=0; i< list.length; i++)
{
myList.add( list[i].getName() );
}
Toast.makeText(getApplicationContext(), file.toString(), Toast.LENGTH_LONG).show();
setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, myList ));
}
Toast.makeText(getApplicationContext(), temp_file.getPath(), Toast.LENGTH_LONG).show();
/*String filePath = Environment.getExternalStorageDirectory()+"/yourfolderNAme/yopurfile.mp3";
*/
String path = temp_file.getPath();
String name = temp_file.getName();
Intent intent = new Intent(download.this, play_ui.class);
intent.putExtra("file", name).putExtra("path",path);
startActivity(intent);
}}
这是我的列表视图的download.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="21dp">
</RelativeLayout>
<ListView
android:id="@+id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
解决方案
推荐阅读
- mercurial - 如何从自定义挂钩中读取配置设置?
- java - 如何与加密的 SQS 队列交互?KMS 密钥访问不起作用
- python - 哪种文件处理方式更好:'r' + 'a' 或 'r+'?
- android - 可绘制的正确位置不正确
- tensorflow - pytorch 中 tf.nn.softmax_cross_entropy_with_logits 的等价物是什么?
- yocto - 带有 Yocto 和 GUI 的 Odroid XU4(未找到 gtk+3 错误 wayland-egl)
- node.js - SailsJS / Waterline:仅从关联中获取特定属性
- kotlin - Kotlin 静态库需要在 Windows 下链接到哪些其他库?
- java - android studio开发代码中的执行顺序
- node.js - 如何部署使用 tgz 文件作为依赖项的 Google Cloud 函数?