操作SD卡,获取文件目录及文件工具类Android,listView

                操作SD卡,获取文件目录及文件工具类Android

1.获取文件目录及文件工具类: DirectoryInfo  FileScan 

1.1 DirectoryInfo: 

package com.glsite.entity;

import java.util.ArrayList;

public class DirectoryInfo {
    public String fatherDirectory;
    public String currentDirectory;//当前目录
    public ArrayList<String> directoryName;//目录或文件名
    public ArrayList<String> childDirectoryContain;//目录下有多少文件

    //	public DirectoryInfo(String fatherDirectory,ArrayList<String> directoryName,int[] childAmount){
    //		this.fatherDirectory=fatherDirectory;
    //		this.directoryName=directoryName;
    //		this.childAmount=childAmount;
    //	}

    public DirectoryInfo() {

    }
}

 1.2 FileScan: 

package com.glsite.utils;


import com.glsite.entity.DirectoryInfo;

import java.io.File;
import java.util.ArrayList;

public class FileScan {

    /**
     * 根据提供的String类型的路径信息返回所含的子文件夹信息,父文件夹信息等
     * 获取文件目录
     */
    public DirectoryInfo getFileDirectory(String filePathString) {
        DirectoryInfo directoryInfo = new DirectoryInfo();
        directoryInfo.directoryName = new ArrayList<String>();
        directoryInfo.childDirectoryContain = new ArrayList<String>();
        directoryInfo.currentDirectory = filePathString;

        if (directoryInfo.currentDirectory.equals("/sdcard")) {
        } else {
            String path = directoryInfo.currentDirectory;
            directoryInfo.fatherDirectory = (new File(path)).getParent();
        }

        getFileList(new File(filePathString), directoryInfo);
        return directoryInfo;
    }

    /**
     * 获取文件列表
     * @param currentFile
     * @param directoryInfo
     */
    private void getFileList(File currentFile, DirectoryInfo directoryInfo) {
        if (currentFile.isDirectory()) {
            File[] childFileGroup = currentFile.listFiles();   //当前目录包含的所有文件
            if (childFileGroup == null)  //权限判断
                return;
            for (int i = 0; i < childFileGroup.length; i++) {
                String childFileString = childFileGroup[i].getAbsolutePath();   //获取子文件夹中单个文件
                File childFile = new File(childFileString);
                String childFileName = childFileString.substring(childFileString.lastIndexOf("/") + 1); //从路径中截取名字

                if (!childFileName.startsWith(".") && childFile.isDirectory() && (childFile != null)) { //如果是目录
                    File[] childChildfiles = childFile.listFiles();
                    directoryInfo.directoryName.add(childFileName);
                    directoryInfo.childDirectoryContain.add("(" + childChildfiles.length + ")");
                } else if (!childFileName.startsWith(".") && childFile.isFile() && (childFile != null)) { //如果是文件
                    directoryInfo.directoryName.add(childFileName);
                    directoryInfo.childDirectoryContain.add("");
                }

            }
        }
    }
}

2. AndroidManifest.xml

SD卡文件操作权限

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.glsite.mobilesafe">

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".ui.SplashActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".ui.MainActivity">
        </activity>
        <activity android:name=".ui.DirectoryListViewActivity">
        </activity>
    </application>

</manifest>

3. 运行时权限:

BaseActivity.java

使用时继承它

package com.glsite.mobilesafe.ui;

import android.app.Activity;
import android.content.DialogInterface;
import android.content.pm.PackageManager;
import android.os.Build;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;

/**
 * @author Admin
 * @version $Rev$
 * @des ${TODO}
 * @updateAuthor $Author$
 * @updateDes ${TODO}
 */
public class BaseActivity extends Activity {
    //**************** Android M Permission (Android 6.0权限控制代码封装)
    private int permissionRequestCode = 88;
    private PermissionCallback permissionRunnable;

    public interface PermissionCallback {
        void hasPermission();

        void noPermission();
    }

    /**
     * Android M运行时权限请求封装
     *
     * @param permissionDes 权限描述
     * @param runnable      请求权限回调
     * @param permissions   请求的权限(数组类型),直接从Manifest中读取相应的值,比如Manifest.permission.WRITE_CONTACTS
     */
    public void performCodeWithPermission(@NonNull String permissionDes, PermissionCallback runnable, @NonNull String... permissions) {
        if (permissions == null || permissions.length == 0)
            return;
        //        this.permissionrequestCode = requestCode;
        this.permissionRunnable = runnable;
        if ((Build.VERSION.SDK_INT < Build.VERSION_CODES.M) || checkPermissionGranted(permissions)) {
            if (permissionRunnable != null) {
                permissionRunnable.hasPermission();
                permissionRunnable = null;
            }
        } else {
            //permission has not been granted.
            requestPermission(permissionDes, permissionRequestCode, permissions);
        }

    }

    private boolean checkPermissionGranted(String[] permissions) {
        boolean flag = true;
        for (String p : permissions) {
            if (ActivityCompat.checkSelfPermission(this, p) != PackageManager.PERMISSION_GRANTED) {
                flag = false;
                break;
            }
        }
        return flag;
    }

    private void requestPermission(String permissionDes, final int requestCode, final String[] permissions) {
        if (shouldShowRequestPermissionRationale(permissions)) {
            /*1. 第一次请求权限时,用户拒绝了,下一次:shouldShowRequestPermissionRationale()  返回 true,应该显示一些为什么需要这个权限的说明
            2.第二次请求权限时,用户拒绝了,并选择了“不在提醒”的选项时:shouldShowRequestPermissionRationale()  返回 false
            3. 设备的策略禁止当前应用获取这个权限的授权:shouldShowRequestPermissionRationale()  返回 false*/
            // Provide an additional rationale to the user if the permission was not granted
            // and the user would benefit from additional context for the use of the permission.
            // For example, if the request has been denied previously.

            //            Snackbar.make(getWindow().getDecorView(), requestName,
            //                    Snackbar.LENGTH_INDEFINITE)
            //                    .setAction(R.string.common_ok, new View.OnClickListener() {
            //                        @Override
            //                        public void onClick(View view) {
            //                            ActivityCompat.requestPermissions(BaseAppCompatActivity.this,
            //                                    permissions,
            //                                    requestCode);
            //                        }
            //                    })
            //                    .show();
            //如果用户之前拒绝过此权限,再提示一次准备授权相关权限
            new AlertDialog.Builder(this)
                    .setTitle("提示")
                    .setMessage(permissionDes)
                    .setPositiveButton("授权", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            ActivityCompat.requestPermissions(BaseActivity.this, permissions, requestCode);
                        }
                    }).show();

        } else {
            // Contact permissions have not been granted yet. Request them directly.
            ActivityCompat.requestPermissions(BaseActivity.this, permissions, requestCode);
        }
    }

    private boolean shouldShowRequestPermissionRationale(String[] permissions) {
        boolean flag = false;
        for (String p : permissions) {
            if (ActivityCompat.shouldShowRequestPermissionRationale(this, p)) {
                flag = true;
                break;
            }
        }
        return flag;
    }

    /**
     * Callback received when a permissions request has been completed.
     */
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
                                           @NonNull int[] grantResults) {
        if (requestCode == permissionRequestCode) {
            if (verifyPermissions(grantResults)) {
                if (permissionRunnable != null) {
                    permissionRunnable.hasPermission();
                    permissionRunnable = null;
                }
            } else {
                Toast.makeText(this, "暂无权限执行相关操作!", Toast.LENGTH_SHORT).show();
                if (permissionRunnable != null) {
                    permissionRunnable.noPermission();
                    permissionRunnable = null;
                }
            }
        } else {
            super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        }

    }

    public boolean verifyPermissions(int[] grantResults) {
        // At least one result must be checked.
        if (grantResults.length < 1) {
            return false;
        }

        // Verify that each required permission has been granted, otherwise return false.
        for (int result : grantResults) {
            if (result != PackageManager.PERMISSION_GRANTED) {
                return false;
            }
        }
        return true;
    }
    //********************** END Android M Permission ****************************************
}

4.DirectoryListViewActivity

 FileScan的使用:

package com.glsite.mobilesafe.ui;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.glsite.entity.DirectoryInfo;
import com.glsite.mobilesafe.R;
import com.glsite.utils.FileScan;

import java.io.File;
import java.util.ArrayList;

/**
 * @author glsite.com
 * @version $Rev$
 * @des ${TODO}
 * @updateAuthor $Author$
 * @updateDes ${TODO}
 */
public class DirectoryListViewActivity extends Activity implements View.OnClickListener {
    private TextView canusemenmery;
    private TextView canuseSDmenmery;
    private TextView currentDirectory;//SD卡/cdbarcode
    private ImageButton directoryReturn, back;
    private ListView directoryListView;
    private static final String defaultPath = "/sdcard";//sd卡
    private FileScan mFileScan;//文件工具
    private DirectoryInfo mDirectoryInfo;
    private String targetFile=null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.directory_listview);
        initview();
    }

    /**
     * 初始化布局文件
     */
    private void initview() {
        canusemenmery = (TextView) findViewById(R.id.canusemenmery);//可用内存
        canuseSDmenmery = (TextView) findViewById(R.id.canuseSDmenmery);//可用sd内存

        directoryReturn = (ImageButton) findViewById(R.id.dialog_save_turnback);//返回
        currentDirectory = (TextView) findViewById(R.id.dialog_save_path);//SD卡/cdbarcode
        directoryListView = (ListView) findViewById(R.id.dir_listview);//ListView

        directoryReturn.setOnClickListener(this);
        back = (ImageButton) findViewById(R.id.back);//退出文件管理
        back.setOnClickListener(this);
        //操作文件工具类
        mFileScan = new FileScan();
        //获取SD卡目录
        mDirectoryInfo = mFileScan.getFileDirectory(defaultPath);
        //显示数据到界面上
        createListView(mDirectoryInfo);

    }

    /**
     * 显示数据到界面上
     *
     * @param directoryInfo
     */
    private void createListView(final DirectoryInfo directoryInfo) {
        DirectoryListAdpter directoryListAdpter = new DirectoryListAdpter(this, directoryInfo);
        directoryListView.setAdapter(directoryListAdpter);
        directoryListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {//点击事件
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                String dr = directoryInfo.currentDirectory + "/";//当前的目录
                String fileItem = dr + directoryInfo.directoryName.get(position);//当前的文件路径
                File file = new File(fileItem);
                if(file.isFile()){//点击的如果是文件
                    targetFile = fileItem;
                    Toast.makeText(DirectoryListViewActivity.this,"已选文件"+fileItem, Toast.LENGTH_SHORT).show();
                }else{//点击的如果是目录
                    mDirectoryInfo=  mFileScan.getFileDirectory(fileItem);
                    createListView(mDirectoryInfo);
                }

            }
        });
        currentDirectory.setText(directoryInfo.currentDirectory);

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.back:
                finish();

                break;
            case R.id.dialog_save_turnback:
                //返回sd卡根目录
                if(!defaultPath.equals(mDirectoryInfo.currentDirectory)){
                    mDirectoryInfo = mFileScan.getFileDirectory(mDirectoryInfo.fatherDirectory);
                    createListView(mDirectoryInfo);
                }

                break;
            default:
                break;
        }

    }

    class DirectoryListAdpter extends BaseAdapter {

        private LayoutInflater mInflater;
        private ArrayList<String> directoryname, childAmount;

        public DirectoryListAdpter(Context context, DirectoryInfo directoryInfo) {
            mInflater = LayoutInflater.from(context);
            directoryname = directoryInfo.directoryName;
            childAmount = directoryInfo.childDirectoryContain;
        }

        @Override
        public int getCount() {
            return directoryname == null ? 0 : directoryname.size();
        }

        @Override
        public Object getItem(int position) {
            return null;
        }

        @Override
        public long getItemId(int position) {
            return 0;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ViewHolder holder = null;
            holder = new ViewHolder();
            convertView = mInflater.inflate(R.layout.directory_list_items, null);
            holder.directoryImage = convertView.findViewById(R.id.directory_item_image);
            holder.directoryname = convertView.findViewById(R.id.directory_item_name);
            holder.directoryChildAmount = convertView.findViewById(R.id.directory_item_childamount);
            holder.directoryImage.setImageResource(R.drawable.ic_dxhome_file_manager);
            holder.directoryname.setText(directoryname.get(position));
            holder.directoryChildAmount.setText(childAmount.get(position));
            return convertView;
        }

        public final class ViewHolder {
            public ImageView directoryImage;
            public TextView directoryname;
            public TextView directoryChildAmount;
        }
    }
}

MainActivity.java

package com.glsite.mobilesafe.ui;

import android.content.Intent;
import android.graphics.drawable.BitmapDrawable;
import android.support.v4.view.ViewPager;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.view.animation.TranslateAnimation;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.TextView;
import android.widget.Toast;

import com.glsite.adapter.PopWindowsAdapter;
import com.glsite.mobilesafe.R;
import com.glsite.mobilesafe.adapter.pageAdapter;
import com.glsite.entity.PopItem;

import java.util.ArrayList;

public class MainActivity extends BaseActivity implements View.OnClickListener, ViewPager.OnPageChangeListener {

    private TextView mTools;
    private TextView mOptimization;
    private TextView mAppmanager;
    private ImageView mTransbar;
    private ViewPager mVpager;
    private View mViewTools;
    private View mViewOptimization;
    private View mViewAppmanager;
    private ArrayList<View> mPageList;
    private TextView curTxt;
    private ImageView mMore;
    private ArrayList<PopItem> list = new ArrayList<PopItem>();
    private PopItem mItem;
    private int wight;
    private int hight;
    private View mView;
    private ListView mIstView;
    private PopupWindow mPopupWindow;
    private LinearLayout mLy_filemanager;
    private LinearLayout mLv_dashituijian;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//去除时间与状态栏
        requestWindowFeature(Window.FEATURE_NO_TITLE);//去除标题;注意把BaseActivity继承的AppCompatActivity类改成继承Activity类;因为AppCompatActivity与Activity类使用的风格不同
        setContentView(R.layout.activity_main);
        initView();
        setImageParam();//初始化图片参数
        initContentView();//初始化内容页
        initpage();//初始化page

    }

    /**
     * 初始化page
     */
    private void initpage() {
        //大师推荐
        mLv_dashituijian = mViewTools.findViewById(R.id.lv_dashituijian);//大师推荐
        mLy_filemanager = mViewTools.findViewById(R.id.ly_filemanager);//文件管理
        mLy_filemanager.setOnClickListener(new toolsClickListener());
    }

    /**
     * 初始化内容页
     */
    private void initContentView() {
        LayoutInflater flater = LayoutInflater.from(this);
        mViewTools = flater.inflate(R.layout.activitymain_tools, null);
        mViewOptimization = flater.inflate(R.layout.activitymain_optimization, null);
        mViewAppmanager = flater.inflate(R.layout.activitymain_appmanager, null);
        mPageList.add(mViewTools);
        mPageList.add(mViewOptimization);
        mPageList.add(mViewAppmanager);
        mVpager.setAdapter(new pageAdapter(mPageList));//设置适配器
    }

    /**
     * 初始化图片参数
     */
    private void setImageParam() {
        int disWidth = getWindowManager().getDefaultDisplay().getWidth();//获取屏幕的宽度
        int imgWidth = (int) (disWidth / 4 * 0.75);//将屏幕尺寸除以4乘0.75 计算出下标图片宽度
        LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) mTransbar.getLayoutParams();//获取图片参数
        params.weight = imgWidth;//修改原图片宽度
        mTransbar.setLayoutParams(params);
        TranslateAnimation move = new TranslateAnimation(0, (disWidth / 4 - imgWidth) / 2, 0, 0);
        move.setDuration(100);//延时100毫秒
        move.setFillAfter(true);//保持这个位置
        mTransbar.startAnimation(move);

    }

    //Ctrl+Alt+F 使局部变量成为成员变量
    private void initView() {
        //工具箱
        mTools = findViewById(R.id.tv_toools);
        //系统优化
        mOptimization = findViewById(R.id.tv_optimization);
        //应用管理
        mAppmanager = findViewById(R.id.tv_appmanager);
        //工具栏下面的一横线,下标图片的位置
        mTransbar = findViewById(R.id.trans_bar);
        //视图翻页工具,提供了多页面切换的效果
        mVpager = findViewById(R.id.vpager);

        mTools.setOnClickListener(this);//点击事件
        mOptimization.setOnClickListener(this);//点击事件
        mAppmanager.setOnClickListener(this);//点击事件
        mVpager.setOnPageChangeListener(this);
        mPageList = new ArrayList<>();
        curTxt = mTools;

        setTxtColor(mTools);
        mMore = findViewById(R.id.more);
        initMoreList();
        mMore.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int[] location = new int[2];
                mMore.getLocationOnScreen(location);  //获取在屏幕上的位置
                int x = location[0];
                int y = location[1];
                wight = x;
                hight = y;
                //显示弹出菜单
                showPopWindows();
            }


        });

    }

    /**
     * 显示弹出菜单
     */
    private void showPopWindows() {
        mView = getLayoutInflater().inflate(R.layout.pup_main, null, false);
        mIstView = mView.findViewById(R.id.pup_list);
        mIstView.setAdapter(new PopWindowsAdapter(list, getApplicationContext()));
        mPopupWindow = new PopupWindow(mView, 200, 470);
        mPopupWindow.setFocusable(true);//是否有焦点
        mPopupWindow.setOutsideTouchable(true);//设置是否可以点击
        mPopupWindow.setBackgroundDrawable(new BitmapDrawable());//设置背景图片
        mPopupWindow.showAsDropDown(mView, wight, hight+200);
        mIstView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                switch (position) {
                    case 0:
                        Toast.makeText(MainActivity.this,"0弹出窗体", Toast.LENGTH_SHORT).show();
                        break;
                    case 1:
                        Toast.makeText(MainActivity.this,"1弹出窗体", Toast.LENGTH_SHORT).show();
                        break;
                    case 2:
                        Toast.makeText(MainActivity.this,"2弹出窗体", Toast.LENGTH_SHORT).show();
                        break;

                    default:
                        break;
                }
                if (mPopupWindow != null) {
                    mPopupWindow.dismiss();//关闭窗口
                }
            }
        });


    }

    /**
     * 初始化弹出菜单栏
     */
    private void initMoreList() {
        mItem = new PopItem("用户中心");
        list.add(mItem);
        mItem = new PopItem("系统设置");
        list.add(mItem);
        mItem = new PopItem("设置项");
        list.add(mItem);
        mItem = new PopItem("设置项");
        list.add(mItem);
    }

    /**
     * 点击事件
     *
     * @param v
     */
    @Override
    public void onClick(View v) {//点击事件
        switch (v.getId()) {
            case R.id.tv_toools://工具箱
                //Toast.makeText(this,"tv_toools工具箱", Toast.LENGTH_SHORT).show();
                imgTrans(mTools);//动画效果改变下标图片的位置
                setTxtColor(mTools);//切换设置文本颜色
                mVpager.setCurrentItem(0);//点击的是哪一页 当前页
                break;
            case R.id.tv_optimization://系统优化
                //Toast.makeText(this,"tv_optimization系统优化", Toast.LENGTH_SHORT).show();
                imgTrans(mOptimization);//动画效果改变下标图片的位置
                setTxtColor(mOptimization);//切换设置文本颜色
                mVpager.setCurrentItem(1);//点击的是哪一页 当前页
                break;
            case R.id.tv_appmanager://应用管理
                //Toast.makeText(this,"tv_appmanager应用管理", Toast.LENGTH_SHORT).show();
                imgTrans(mAppmanager);//动画效果改变下标图片的位置
                setTxtColor(mAppmanager);//切换设置文本颜色
                mVpager.setCurrentItem(2);//点击的是哪一页 当前页
                break;

            default:
                break;
        }
    }

    /**
     * 切换设置文本颜色
     *
     * @param endText
     */
    private void setTxtColor(TextView endText) {
        switch (endText.getId()) {
            case R.id.tv_toools://工具箱
                mTools.setTextColor(getResources().getColor(R.color.green));
                mOptimization.setTextColor(getResources().getColor(R.color.floralwhite));
                mAppmanager.setTextColor(getResources().getColor(R.color.floralwhite));
                break;
            case R.id.tv_optimization://系统优化
                mTools.setTextColor(getResources().getColor(R.color.floralwhite));
                mOptimization.setTextColor(getResources().getColor(R.color.green));
                mAppmanager.setTextColor(getResources().getColor(R.color.floralwhite));
                break;
            case R.id.tv_appmanager://应用管理
                mTools.setTextColor(getResources().getColor(R.color.floralwhite));
                mOptimization.setTextColor(getResources().getColor(R.color.floralwhite));
                mAppmanager.setTextColor(getResources().getColor(R.color.green));
                break;

            default:
                break;
        }
    }

    /**
     * 动画效果改变下标图片的位置
     *
     * @param endTxt
     */
    private void imgTrans(TextView endTxt) {
        int startMid = curTxt.getLeft() + curTxt.getWidth() / 2;
        int startLeft = startMid - mTransbar.getWidth() / 2;
        int endMid = endTxt.getLeft() + endTxt.getWidth() / 2;
        int endLift = endMid - mTransbar.getWidth() / 2;
        TranslateAnimation move = new TranslateAnimation(startLeft, endLift, 0, 0);
        move.setDuration(200);
        move.setFillAfter(true);//保存位置
        mTransbar.startAnimation(move);
        curTxt = endTxt;
    }

    @Override
    public void onPageScrolled(int i, float v, int i1) {

    }

    @Override
    public void onPageSelected(int i) {
        switch (i) {
            case 0://工具箱
                //Toast.makeText(this,"tv_toools工具箱", Toast.LENGTH_SHORT).show();
                imgTrans(mTools);//动画效果改变下标图片的位置
                setTxtColor(mTools);//切换设置文本颜色
               // mVpager.setCurrentItem(0);//点击的是哪一页 当前页
                break;
            case 1://系统优化
                //Toast.makeText(this,"tv_optimization系统优化", Toast.LENGTH_SHORT).show();
                imgTrans(mOptimization);//动画效果改变下标图片的位置
                setTxtColor(mOptimization);//切换设置文本颜色
                //mVpager.setCurrentItem(1);//点击的是哪一页 当前页
                break;
            case 2://应用管理
                //Toast.makeText(this,"tv_appmanager应用管理", Toast.LENGTH_SHORT).show();
                imgTrans(mAppmanager);//动画效果改变下标图片的位置
                setTxtColor(mAppmanager);//切换设置文本颜色
                //mVpager.setCurrentItem(2);//点击的是哪一页 当前页
                break;

            default:
                break;
        }

    }

    @Override
    public void onPageScrollStateChanged(int i) {

    }

    private class toolsClickListener implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.lv_dashituijian:大师推荐


                break;
                case R.id.ly_filemanager://文件管理
                    startActivity(new Intent(MainActivity.this,DirectoryListViewActivity.class));
                    break;
                default:
                    break;
            }
        }
    }
}

directory_listview.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/whitesmoke">
    <RelativeLayout
        android:id="@+id/mian_title"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:background="#074060">
        <ImageButton
            android:id="@+id/back"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:background="@drawable/titlebar_logo_back"
            />
        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="文件管理"
            android:textColor="@color/whitesmoke"
            android:textSize="20sp"/>
    </RelativeLayout>
    <!-- 手机信息界面 -->
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="30dp"
        android:layout_gravity="center"
        android:background="@drawable/navigationbar_bg">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_alignParentLeft="true"
            android:layout_marginLeft="10dp"
            android:gravity="center"
            android:text="可用内存:"
            android:textColor="@android:color/black"
            android:textSize="14sp" />


        <TextView
            android:id="@+id/canusemenmery"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_alignParentLeft="true"
            android:layout_marginLeft="5dp"
            android:gravity="center"
            android:text="124M"
            android:textColor="@android:color/black"
            android:textSize="14sp" />


        <TextView
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_alignParentLeft="true"
            android:layout_marginLeft="35dp"
            android:gravity="center"
            android:text="可用Sd内存:"
            android:textColor="@android:color/black"
            android:textSize="14sp" />


        <TextView
            android:id="@+id/canuseSDmenmery"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_alignParentLeft="true"
            android:layout_marginLeft="5dp"
            android:gravity="center"
            android:text="4511M"
            android:textColor="@android:color/black"
            android:textSize="14sp" />

    </LinearLayout>
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="45dp"
        android:background="@drawable/navigationbar_bg">
        <TextView
            android:id="@+id/dialog_save_path"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_alignParentLeft="true"
            android:layout_marginLeft="10dp"
            android:ellipsize="start"
            android:gravity="center"
            android:maxWidth="240dp"
            android:singleLine="true"
            android:text="SD卡/cdbarcode"
            android:textColor="@color/black"
            android:textSize="18sp"
            />
        <ImageButton
            android:id="@+id/dialog_save_turnback"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_marginRight="5dp"
            android:background="@drawable/directory_back_selector"
            />

    </RelativeLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1">
        <ListView
            android:id="@+id/dir_listview"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:cacheColorHint="#00000000"
            >

        </ListView>
    </LinearLayout>


</LinearLayout>

directory_list_items.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/directory_item"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/directory_item_image"
        android:layout_width="wrap_content"
        android:layout_height="40dp"
        android:layout_gravity="center_vertical"
        android:layout_margin="5dp"
        android:scaleType="fitCenter" />

    <TextView
        android:id="@+id/directory_item_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_margin="5dp"
        android:singleLine="true"
        android:text=""
        android:textColor="@android:color/black"
        android:textSize="18sp"></TextView>

    <TextView
        android:id="@+id/directory_item_childamount"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:text="(0)"
        android:textColor="#ff525353"
        android:textSize="18sp"></TextView>
</LinearLayout> 

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.glsite.mobilesafe">

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".ui.SplashActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".ui.MainActivity">
        </activity>
        <activity android:name=".ui.DirectoryListViewActivity">
        </activity>
    </application>

</manifest>

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_无往而不胜_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值