首页 > 代码库 > Android 编程之入门开发文件夹管理器开发详细讲解-1
Android 编程之入门开发文件夹管理器开发详细讲解-1
在我们的手持设备中,一般都会自带设备公司自己开发的文件管理系统、拍照系统之类的东东,今天我给大伙说说入门级开发的文件夹管理器,代码贼少
总共就6个类吧,没有夹杂其他外部应用,就是一个纯文件夹管理器
APP主要功能设计:文件复制、文件夹复制、批量文件/文件夹复制、删除文件、删除文件夹、批量删除文件/文件夹、文件分类、文件搜索暂时没有写,
有兴趣的可以自己写写
APP主要应用:DrawerLayout 、ListView、Fragment、IO、序列化、文件过滤、文件排序、ActionBar、Adapter、v4包、一些事件等
下面开始讲开发吧,首先我们要给APP读写权限,在清单文件配置如下权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
主界面活动代码:
package com.example.maozhuafile; /** * 文件管理主界面 * @author Engineer-Jsp * @date 2014.10.27 * */ import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.example.maozhuafile.MainActivity.FragmentA.FragmentB; import com.example.maozhuafile.MainActivity.FragmentA.FragmentC; import com.example.maozhuafile.MainActivity.FragmentA.FragmentD; import com.example.util.CustomFileFilter; import com.example.util.FileOpreationUitl; import com.example.util.FileSort; import com.example.util.FragmentAdapter; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore; import android.app.ActionBar; import android.app.Activity; import android.app.AlertDialog; import android.app.Fragment; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.database.Cursor; import android.support.v4.app.ActionBarDrawerToggle; import android.support.v4.widget.DrawerLayout; import android.util.Log; import android.util.SparseBooleanArray; import android.view.ActionMode; import android.view.Gravity; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.AbsListView.MultiChoiceModeListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.EditText; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity implements OnItemClickListener { private ActionBar actionbar; private ActionBarDrawerToggle drawertoggle; private DrawerLayout drawerLayout; private ListView drawerlistview; private String[] drawerdata; private SimpleAdapter adapter; private List<Map<String, Object>> draweralllist = new ArrayList<Map<String, Object>>(); private FragmentA fragmentA; private FragmentB fragmentB; private FragmentC fragmentC; private FragmentD fragmentD; private int[] list_image = { R.drawable.cunchu, R.drawable.music, R.drawable.movies, R.drawable.photos }; private static int index = -1; private static File currentpath; private static File SDpath; // private static File[] mfileData; private static Context mContext; public static boolean exit; private static boolean copy; private static MenuItem paste; int i=0; private static EditText newFile; private static FileOpreationUitl opreaFile=new FileOpreationUitl(); protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mContext = MainActivity.this; initDrawerLayout(); // initDrawerContent(); // if (null == savedInstanceState) { // 如果为空代表第一次执行 fragmentA = new FragmentA(); fragmentB = new FragmentB(); fragmentC = new FragmentC(); fragmentD = new FragmentD(); // 动态添加 android.app.FragmentManager fg = getFragmentManager(); fg.beginTransaction().add(R.id.drawer_frame_a, fragmentA).commit(); } } private void initDrawerContent() { drawerdata = http://www.mamicode.com/getResources().getStringArray(R.array.array);>
主布局:<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/chouti" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <FrameLayout android:id="@+id/drawer_frame_a" android:layout_width="match_parent" android:layout_height="match_parent" /> <FrameLayout android:id="@+id/drawer_frame_b" android:layout_width="match_parent" android:layout_height="match_parent" /> <ListView android:id="@+id/drawer_list" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="start" android:background="#eee" /> </android.support.v4.widget.DrawerLayout>文件列表 Item 布局文件:
<?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:background="@drawable/drawer_bg" > <ImageView android:id="@+id/filelist_imageview" android:layout_width="24dp" android:layout_height="24dp" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="18dp" android:layout_marginTop="10dp" android:src=http://www.mamicode.com/"@drawable/photos">
自定义Adapter,控制文件与应用图片配对,队号入座,ViewHolder 节约内存资源:package com.example.util; /** * 自定义容器Adapter * @author Engineer-Jsp * @date 2014.10.27 * */ import java.io.File; import java.util.Date; import com.example.maozhuafile.R; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; public class FragmentAdapter extends BaseAdapter { private Context mContext ; private File[] mfileData ; private LayoutInflater mlayoutinflater; public FragmentAdapter( File[]files ,Context pContext) { mContext = pContext ; mfileData = http://www.mamicode.com/files ;>至此主活动布局就完成了,主布局效果图:
注意:如果使用模拟器测试,请注意,如果模拟器没有开启 SD 内存iso,请自行开启测试,如果SD内存为空,请自行新建文件测试,谢谢~
Android 编程之入门开发文件夹管理器开发详细讲解-1
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。