概述:
需求:显示手机内所有文件、文件夹,显示文件内容,对文件拷贝、删除等。
实现:遍历文件,显示文件信息到ListView中;读取文件,显示到界面上;ListView添加菜单,处理文件操作。
扩展:自定义Activity标题栏,创建后台服务播放MP3文件。
代码:
<span style="font-family:Microsoft YaHei;font-size:12px;">public class MainActivity extends Activity {
public static final int MENU_ID_BASE = 0;
@Override
public boolean onContextItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch( item.getItemId() ){
case MENU_ID_BASE+1://删除
Toast.makeText(this, "删除文件", Toast.LENGTH_LONG).show();
break;
case MENU_ID_BASE+2://复制
Toast.makeText(this, "复制文件", Toast.LENGTH_LONG).show();
break;
case MENU_ID_BASE+3://重命名
Toast.makeText(this, "重命名文件", Toast.LENGTH_LONG).show();
break;
}
return super.onContextItemSelected(item);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if ( keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN ){
if ( !isRoot() ){
goBack();
return true;
}
}
return super.onKeyDown(keyCode, event);
}
private ListView m_lv = null;
private TouchCallback m_tcb = null;
private ArrayList<File> m_files = new ArrayList<File>();
private String m_strDir = "./";
private TextView m_tvFile = null;
private OnItemLongClickListenerEx mItemLclickCb = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
m_lv = (ListView)findViewById(R.id.lv1);
m_tvFile = (TextView)findViewById(R.id.tv_file);
m_tcb = new TouchCallback();
mItemLclickCb = new OnItemLongClickListenerEx();
m_tcb.setMainActivity(this);
m_lv.setOnItemClickListener(m_tcb);
mItemLclickCb.SetActivity(this);
mItemLclickCb.SetListView(m_lv);
m_lv.setOnItemLongClickListener(mItemLclickCb);
//m_lv.setOnClickListener(m_tcb);
//生成动态数组,加入数据
File fRoot = new File(m_strDir);
AddFiles(fRoot);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.x