`
15050855750
  • 浏览: 8540 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

文件管理器(草稿篇)

 
阅读更多
package com.example.wenjianguanli;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;

import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ListActivity;
import android.app.ProgressDialog;
import android.app.AlertDialog.Builder;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.GridView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;

public class MainActivity extends ListActivity {
    private String rootPath; 
    File root;
    private TextView mPath;
	private String mOldFilePath = "";
	private String mNewFilePath = "";
	private long size;
	private long newF;
	private Handler handler;
	private ProgressDialog myProgressDialog;
    //存储文件名称
    private ArrayList<String> names = null;
    //存储文件路径
    private ArrayList<String> paths = null;
    private GridView mGrid;
	private int[] girdview_image = {R.drawable.menu_create,R.drawable.menu_palse,R.drawable.menu_palse,R.drawable.menu_exit};
	private String[] gridview_title = {"创建","粘贴","移动","退出"};
    private View view;
    private EditText editText;
    

    
    /** Called when the activity is first created. */
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
      //初始化菜单视图
        initGridViewMenu();
        //初始化菜单监听器
        initMenuListener();
        
      
      
        
        File root= Environment.getExternalStorageDirectory();
        rootPath=root.toString();
        mPath = (TextView) findViewById(R.id.mPath);
        //显示文件列表
        showFileDir(rootPath);
    }
    
    /**为GridView配饰菜单资源*/
    private void initGridViewMenu(){
    	mGrid=(GridView)findViewById(R.id.grid);
         //设置列数
         mGrid.setNumColumns(4);
         //设置剧中对齐
         mGrid.setGravity(Gravity.CENTER);
         //设置水平,垂直间距为10
         mGrid.setVerticalSpacing(10);
         mGrid.setHorizontalSpacing(10);
         mGrid.setBackgroundResource(R.drawable.background);
         //设置适配器
         mGrid.setAdapter(getMenuAdapter(gridview_title,girdview_image));
    }
    
    /**菜单适配器*/
    private SimpleAdapter getMenuAdapter(String[] menuNameArray,
			int[] imageResourceArray) {
    	//数组列表用于存放映射表
		ArrayList<HashMap<String, Object>> mData = new ArrayList<HashMap<String, Object>>();
		for (int i = 0; i < menuNameArray.length; i++) {
			HashMap<String, Object> mMap = new HashMap<String, Object>();
			//将“image”映射成图片资源
			mMap.put("image", imageResourceArray[i]);
			//将“title”映射成标题
			mMap.put("title", menuNameArray[i]);		
			mData.add(mMap);
		}
		//新建简单适配器,设置适配器的布局文件,映射关系
		SimpleAdapter mAdapter = new SimpleAdapter(this, mData,R.layout.item_menu, new String[] { "image", "title" },new int[] { R.id.item_image, R.id.item_text });
		return mAdapter;
	}
    
    /**菜单项的监听*/
    protected void initMenuListener(){
    	mGrid.setOnItemClickListener(new OnItemClickListener(){

			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				switch(arg2){
				//创建文件夹
				case 0:
					createFolder();
					break;
				//粘贴文件
				case 1 :
				palseFile();
					break;
				//退出
				case 2 :
					moveFile();
					break;
				case 3:
					MainActivity.this.finish();
					break;
				}
			}  		
    	});
    }
    
    /**粘贴*/
  

    private void palseFile(){
    	mNewFilePath = mCurrentFilePath+java.io.File.separator+mCopyFileName;//得到新路径
		Log.d("copy", "mOldFilePath is "+mOldFilePath+"| mNewFilePath is "+mNewFilePath+"| isCopy is "+isCopy);
		if(!mOldFilePath.equals(mNewFilePath)&&isCopy == true){//在不同路径下复制才起效
			if(!new File(mNewFilePath).exists()){
				/*
				myProgressDialog=new ProgressDialog(MainActivity.this);
				myProgressDialog.setMax(100);
				myProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
				myProgressDialog.setTitle("正在复制文件");
				myProgressDialog.setCancelable(false);
	            new Thread(new Runnable() {           
			        @Override  
			        public void run() {  
			        	

			                runOnUiThread(new Runnable() {                        
			                    public void run() {  

			                     
			                        copyFile(mOldFilePath,mNewFilePath);
			                      
			                    	Toast.makeText(MainActivity.this, "执行了粘贴", Toast.LENGTH_SHORT).show();
			                    	showFileDir(mCurrentFilePath);
			                    }  
			                });  
			                  
			                try {  
			                	myProgressDialog.setProgress((int)(100*newF/size));
			                	if (myProgressDialog.getProgress()>=100)
			    				{
			    				//关闭进度条
			    				myProgressDialog.dismiss();
			    				}
			                    Thread.sleep(1000);  
			                } catch (InterruptedException e) {  
			                    e.printStackTrace();  
			                }  
			            }  

			    }).start();  		

			*/

		
				
				
			}else{
				new AlertDialog.Builder(MainActivity.this)
				.setTitle("提示!")
				.setMessage("该文件名已存在,是否要覆盖?")
				.setPositiveButton("确定", new DialogInterface.OnClickListener(){
					public void onClick(DialogInterface dialog,int which){
						copyFile(mOldFilePath,mNewFilePath);
						 showFileDir(mCurrentFilePath);
					}
				})
				.setNegativeButton("取消", null).show();
			}
		}else{
			Toast.makeText(MainActivity.this, "未复制文件!", Toast.LENGTH_LONG).show();
		}
    }  
    private void moveFile(){
    	mNewFilePath = mCurrentFilePath+java.io.File.separator+mCopyFileName;
    	if(isCut == true){
    		if(!new File(mNewFilePath).exists()){
    			new File(mOldFilePath).renameTo(new File(mNewFilePath)); 
    			Toast.makeText(MainActivity.this, "执行了移动", Toast.LENGTH_SHORT).show();
				 showFileDir(mCurrentFilePath);
    		}
    	}
    }
    
    private String mNewFolderName = "";
    private File mCreateFile;
    private RadioGroup mCreateRadioGroup;
    private static int mChecked;
    /**创建文件夹的方法:当用户点击软件下面的创建菜单的时候,是在当前目录下创建的一个文件夹
     * 静态变量mCurrentFilePath存储的就是当前路径
     * java.io.File.separator是JAVA给我们提供的一个File类中的静态成员,它会根据系统的不同来创建分隔符
     * mNewFolderName正是我们要创建的新文件的名称,从EditText组件上得到的*/
    private void createFolder(){
    	//用于标识当前选中的是文件或者文件夹
    	mChecked = 2;
    	LayoutInflater mLI = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    	//初始化对话框布局
    	final LinearLayout mLL = (LinearLayout)mLI.inflate(R.layout.create_dialog, null);
    	mCreateRadioGroup = (RadioGroup)mLL.findViewById(R.id.radiogroup_create);
    	final RadioButton mCreateFileButton = (RadioButton)mLL.findViewById(R.id.create_file);
    	final RadioButton mCreateFolderButton = (RadioButton)mLL.findViewById(R.id.create_folder);
    	//设置默认为创建文件夹
    	mCreateFolderButton.setChecked(true);
    	//为按钮设置监听器
    	mCreateRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){
    		//当选择改变时触发
			public void onCheckedChanged(RadioGroup arg0, int arg1) {
				if(arg1 == mCreateFileButton.getId()){
					mChecked = 1;
				}else if(arg1 == mCreateFolderButton.getId()){
					mChecked = 2;
				}
			}   		
    	});
    	//显示对话框
    	Builder mBuilder = new AlertDialog.Builder(MainActivity.this)
    	.setTitle("新建")
    	.setView(mLL)
    	.setPositiveButton("创建", new DialogInterface.OnClickListener(){
			public void onClick(DialogInterface dialog, int which) {
				//或者用户输入的名称
				mNewFolderName = ((EditText)mLL.findViewById(R.id.new_filename)).getText().toString();
				if(mChecked == 1){
					try {
						mCreateFile = new File(mCurrentFilePath+java.io.File.separator+mNewFolderName+".txt");
						mCreateFile.createNewFile();
						//刷新当前目录文件列表
						 showFileDir(mCurrentFilePath);
					} catch (IOException e) {
						Toast.makeText(MainActivity.this, "文件名拼接出错..!!", Toast.LENGTH_SHORT).show();
					}
				}else if(mChecked == 2){
					mCreateFile = new File(mCurrentFilePath+java.io.File.separator+mNewFolderName);
					if(!mCreateFile.exists()&&!mCreateFile.isDirectory()&&mNewFolderName.length() != 0){
						if(mCreateFile.mkdirs()){
							//刷新当前目录文件列表
							 showFileDir(mCurrentFilePath);
						}else{
							Toast.makeText(MainActivity.this, "创建失败,可能是系统权限不够,root一下?!", Toast.LENGTH_SHORT).show();
						}
					}else{
						Toast.makeText(MainActivity.this, "文件名为空,还是重名了呢?", Toast.LENGTH_SHORT).show();
					}
				}			
			}
    	}).setNeutralButton("取消", null);
    	mBuilder.show();
    }
    
    public static String mCurrentFilePath = "";
    /**根据给定的一个文件夹路径字符串遍历出这个文
     * 件夹中包含的文件名称并配置到ListView列表中*/  
    private void showFileDir(String path){
    	
    	try {
    		mCurrentFilePath = path;
			mPath.setText(path);
			names = new ArrayList<String>();
			paths = new ArrayList<String>();
			File file = new File(path);
			File[] files = file.listFiles();
			
			//如果当前目录不是根目录
			if (!rootPath.equals(path)){
			    names.add("@1");
			    paths.add(rootPath);
			    
			    names.add("@2");
			    paths.add(file.getParent());
			}
			//添加所有文件
			for (File f : files){
			    names.add(f.getName());
			    paths.add(f.getPath());
			}
			this.setListAdapter(new MyAdapter(this,names, paths));
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    }
    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        String path = paths.get(position);
        File file = new File(path);
        // 文件存在并可读
        if (file.exists() && file.canRead()){
            if (file.isDirectory()){
                //显示子目录及文件
                showFileDir(path);
            }
            else{
                //处理文件
                fileHandle(file);
            }
        }
        super.onListItemClick(l, v, position, id);
    }
    //对文件进行增删改
    private String mCopyFileName;
    private boolean isCut=false;
    private boolean isCopy = false;
    private void fileHandle(final File file){
        OnClickListener listener = new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // 打开文件
                if (which == 0){
                    openFile(file);
                }
                //移动
         else if(which==1){
        	 Toast.makeText(MainActivity.this, "移动到", Toast.LENGTH_SHORT).show();  
        	  isCut=true;
        	//取得移动文件的名字
				mCopyFileName = file.getName();
				//记录移动文件的路径
				mOldFilePath = mCurrentFilePath+java.io.File.separator+mCopyFileName;
                }
                //复制
               else if(which==2){
						Toast.makeText(MainActivity.this, "已复制!", Toast.LENGTH_SHORT).show();
						//复制标志位,表明已复制文件
						isCopy = true;
						
						size=file.length();
						//取得复制文件的名字
						mCopyFileName = file.getName();
						//记录复制文件的路径
						mOldFilePath = mCurrentFilePath+java.io.File.separator+mCopyFileName;
                }
                //修改文件名
                else if(which == 3){
                    LayoutInflater factory = LayoutInflater.from(MainActivity.this);
                    view = factory.inflate(R.layout.rename, null);
                    editText = (EditText)view.findViewById(R.id.editText);
                    editText.setText(file.getName());
                    
                    OnClickListener listener2 = new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            // TODO Auto-generated method stub
                            String modifyName = editText.getText().toString();
                            final String fpath = file.getParentFile().getPath();
                            final File newFile = new File(fpath + "/" + modifyName);
                            if (newFile.exists()){
                                //排除没有修改情况
                                if (!modifyName.equals(file.getName())){
                                    new AlertDialog.Builder(MainActivity.this)
                                    .setTitle("注意!")
                                    .setMessage("文件名已存在,是否覆盖?")
                                    .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                                        @Override
                                        public void onClick(DialogInterface dialog, int which) {
                                            if (file.renameTo(newFile)){
                                                showFileDir(fpath);
                                                displayToast("重命名成功!");
                                            }
                                            else{
                                                displayToast("重命名失败!");
                                            }
                                        }
                                    })
                                    .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                                        @Override
                                        public void onClick(DialogInterface dialog, int which) {
                                            
                                        }
                                    })
                                    .show();
                                }
                            }
                            else{
                                if (file.renameTo(newFile)){
                                    showFileDir(fpath);
                                    displayToast("重命名成功!");
                                }
                                else{
                                    displayToast("重命名失败!");
                                }
                            }
                        }
                    };
                    AlertDialog renameDialog = new AlertDialog.Builder(MainActivity.this).create();
                    renameDialog.setView(view);
                    renameDialog.setButton("确定", listener2);
                    renameDialog.setButton2("取消", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            // TODO Auto-generated method stub
                            
                        }
                    });
                    renameDialog.show();
                }
                //删除文件
                else{
                    new AlertDialog.Builder(MainActivity.this)
                    .setTitle("注意!")
                    .setMessage("确定要删除此文件吗?")
                    .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            if(file.delete()){
                                //更新文件列表
                                showFileDir(file.getParent());
                                displayToast("删除成功!");
                            }
                            else{
                                displayToast("删除失败!");
                            }
                        }
                    })
                    .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            
                        }
                    }).show();
                }
            }
        };
        //选择文件时,弹出增删该操作选项对话框
        String[] menu = {"打开","移动","复制","重命名","删除文件"};//"移动","复制",
        new AlertDialog.Builder(MainActivity.this)
        .setTitle("请选择要进行的操作!")
        .setItems(menu, listener)
        .setPositiveButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                
            }
        }).show();
    }
    //打开文件
    private void openFile(File file){
        Intent intent = new Intent();
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //默认的跳转类型,将Activity放到一个新的Task中
        intent.setAction(android.content.Intent.ACTION_VIEW);
        
        String type = getMIMEType(file);
        intent.setDataAndType(Uri.fromFile(file), type);
        startActivity(intent);
    }
    //获取文件mimetype
    private String getMIMEType(File file){
        String type = "";
        String name = file.getName();
        //文件扩展名
        String end = name.substring(name.lastIndexOf(".") + 1, name.length()).toLowerCase();
        if (end.equals("m4a") || end.equals("mp3") ||end.equals("mid")||  
                end.equals("xmf")||end.equals("ogg")|| end.equals("wav")){
            type = "audio";
        }
        else if(end.equals("mp4") || end.equals("3gp")) {
            type = "video";
        }
        else if (end.equals("jpg") || end.equals("png") || end.equals("jpeg") || end.equals("bmp") || end.equals("gif")){
            type = "image";
        }
        else {
            //如果无法直接打开,跳出列表由用户选择
            type = "*";
        }
        type += "/*";
        return type;
    }
    private int i;
    FileInputStream fis;
	FileOutputStream fos;
    //复制文件
    private void copyFile(String oldFile,String newFile){
    	try {
			fis =  new FileInputStream(oldFile);
			fos = new FileOutputStream(newFile);
			
			do{
				//逐个byte读取文件,并写入另一个文件中
				if((i = fis.read()) != -1){
			        newF=i;
					fos.write(i);
				}
			}while(i != -1);
			//关闭输入文件流
			if(fis != null){
				fis.close();
			}
			//关闭输出文件流
			if(fos != null){
				fos.close();
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
    }

		
    private void displayToast(String message){
        Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show();
    }
}


MyAdapter类
package com.example.wenjianguanli;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.io.File;
import java.util.ArrayList;

public class MyAdapter extends BaseAdapter{
    private LayoutInflater inflater;
    private Bitmap back01,back02,directory,file;
    //存储文件名称
    private ArrayList<String> names = null;
    //存储文件路径
    private ArrayList<String> paths = null;
    //参数初始化
    public MyAdapter(Context context,ArrayList<String> na,ArrayList<String> pa){
        names = na;
        paths = pa;
        back01 = BitmapFactory.decodeResource(context.getResources(),R.drawable.back01);
        back02= BitmapFactory.decodeResource(context.getResources(),R.drawable.back02);
        directory = BitmapFactory.decodeResource(context.getResources(),R.drawable.folder);
        file = BitmapFactory.decodeResource(context.getResources(),R.drawable.doc);
        //缩小图片
        directory = small(directory,0.16f);
        file = small(file,0.1f);
        inflater = LayoutInflater.from(context);
    }
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return names.size();
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return names.get(position);
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        ViewHolder holder;
        if (null == convertView){
            convertView = inflater.inflate(R.layout.file_row, null);
            holder = new ViewHolder();
            holder.text = (TextView)convertView.findViewById(R.id.text);
            holder.image = (ImageView)convertView.findViewById(R.id.icon);
            
            convertView.setTag(holder);
        }
        else {
            holder = (ViewHolder)convertView.getTag();
        }
        File f = new File(paths.get(position).toString());
        if (names.get(position).equals("@1")){
            holder.text.setText("返回根目录..");
            holder.image.setImageBitmap(back01);
        }
        else if (names.get(position).equals("@2")){
            holder.text.setText("返回上一层..");
            holder.image.setImageBitmap(back02);
        }
        else{
            holder.text.setText(f.getName());
            if (f.isDirectory()){
                holder.image.setImageBitmap(directory);
            }
            else if (f.isFile()){
                holder.image.setImageBitmap(file);
            }
            else{
                System.out.println(f.getName());
            }
        }
        return convertView;
    }
    private class ViewHolder{
        private TextView text;
        private ImageView image;
    }
    private Bitmap small(Bitmap map,float num){
        Matrix matrix = new Matrix();
        matrix.postScale(num, num);
        return Bitmap.createBitmap(map,0,0,map.getWidth(),map.getHeight(),matrix,true);
    }
}


权限
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
xml
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
 <TextView
  android:id="@+id/mPath"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:textSize="20sp"
  android:singleLine="true" >
</TextView>
<ListView  
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
	android:layout_below="@+id/mPath"
	android:layout_marginBottom="70dp"
    />
	<GridView
		android:id="@+id/grid"
		android:layout_height="wrap_content"
		android:layout_width="fill_parent"
		android:layout_alignParentBottom="true"></GridView>
</RelativeLayout>


create_dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:orientation="vertical" >
  <!-- 二选一 -->
<RadioGroup 
	android:id="@+id/radiogroup_create"
	android:layout_width="fill_parent"
	android:layout_height="wrap_content">
	<!-- 创建文件选项 -->
	<RadioButton 
	android:layout_height="wrap_content" 
	android:layout_width="fill_parent" 
	android:text="文本文件" 
	android:id="@+id/create_file" />
	<!-- 创建文件夹选项 -->
	<RadioButton 
	android:layout_height="wrap_content" 
	android:layout_width="fill_parent" 
	android:text="文件夹" 
	android:id="@+id/create_folder" />
</RadioGroup>  
	<!-- 文本框,供用户填写文件名称 -->
	<EditText 
	android:layout_height="wrap_content" 
	android:id="@+id/new_filename" 
	android:layout_width="fill_parent" 
	android:hint="请输入文件名"
	android:singleLine="true" />	
</LinearLayout>

file_row.xml
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="horizontal"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:background="#ffffff"
>
<LinearLayout  
        android:orientation="horizontal"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent"  
        android:padding="6px"
    >  
  <ImageView android:id="@+id/icon"
    android:layout_width="30dip"
    android:layout_height="30dip"
  >
  </ImageView>
  <TextView android:id="@+id/text"
    android:layout_gravity="center_horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:textColor="#767676"
  >
  </TextView>
  </LinearLayout>
</LinearLayout>

item_menu.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:id="@+id/RelativeLayout_Item"
	android:layout_width="fill_parent" 
	android:layout_height="wrap_content"
	android:paddingBottom="5dip">
	<!-- 用于显示菜单的图片 -->
	<ImageView 
	    android:id="@+id/item_image"
		android:layout_centerHorizontal="true" 
		android:layout_width="wrap_content"
		android:layout_height="45dp"></ImageView>
	<!-- 用于显示菜单的文字 -->
	<TextView 
	    android:layout_below="@id/item_image" 
		android:id="@+id/item_text"
		android:layout_centerHorizontal="true" 
		android:layout_width="wrap_content"
		android:layout_height="wrap_content" 
		android:textColor="#FFFFFFFF"></TextView>
</RelativeLayout>


rename.xml
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
  <EditText
        android:id="@+id/editText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"  
  />
</LinearLayout>

分享到:
评论

相关推荐

    个人草稿事情记录

    这篇个人草稿似乎涉及到的是某个人在进行项目开发过程中,关于事项记录和交接的细节。虽然标题没有提供太多技术性的信息,但我们可以推测这可能是一个程序员或IT专业人员的工作习惯,他们通过文档记录工作进度和待办...

    批量文件改名器

    总之,批量文件改名器是一个实用的工具,它通过自动化的方式简化了繁琐的文件管理任务,提高了效率,尤其适用于需要处理大量文件的场景。理解其工作原理和应用场景,可以帮助我们更好地管理和组织日常的数字资料。

    草稿ss syntaxhighlighter

    5. **在Linux环境中的使用**:“linux.txt”文件可能提供了在Linux环境下使用SyntaxHighlighter的具体步骤,例如在终端中预览高亮的代码或在Linux编辑器中实现类似功能。 6. **常见问题与解决**:可能包含了一些使用...

    [WebApi] 捣鼓一个资源管理器--服务器端分割压缩图片 [草稿]

    【WebApi】捣鼓一个资源管理器--服务器端分割压缩图片 在Web开发中,我们经常需要处理大量的图片资源,特别是在构建一个资源管理系统时。WebApi作为.NET Framework的一部分,为创建HTTP服务提供了一种轻量级、灵活...

    草稿-----存储

    虽然描述为空,但我们可以从标签“源码”和“工具”中推测,这篇文章可能会涉及存储系统的源代码分析或是使用特定工具进行数据存储和管理的方法。 在IT领域,存储是一个广泛的议题,涵盖硬件、软件、协议和服务等多...

    信息系统项目管理师复习资料.rar

    3. **高项--优秀论文(十大知识领域各一篇).doc**:这些优秀论文分别涵盖了项目管理知识体系指南(PMBOK)中的十大知识领域,如范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、风险管理、采购管理...

    新闻发布系统来源文件

    1. **新闻管理**:管理员可以发布新的新闻,编辑现有新闻,设置新闻的状态(如发布、草稿、隐藏等),并可以按照日期、类别等进行排序和筛选。 2. **用户管理**:包括用户注册、登录、权限分配等,管理员可以管理...

    【已改】徐佳的草稿论文 -.zip

    【已改】徐佳的草稿论文 -.zip 这个压缩包文件的名称表明它包含的是徐佳的一份草稿论文。通常,草稿论文是作者在完成最终版本之前进行反复修改和完善的初步版本,因此我们可以预期这篇论文可能涵盖了某个特定的学术...

    web管理系统

    【web管理系统】是一种在线平台,它允许用户通过网络进行交互,执行特定的管理任务,例如在本例中,是管理个人或集体的博客内容。这个系统通常由前端界面和后端服务器组成,前端负责用户的交互体验,而后端则处理...

    论电子信息技术在档案管理中的运用 (2).pdf

    《论电子信息技术在档案管理中的运用》这篇文章深刻剖析了电子信息技术给档案管理带来的优势以及应用过程中遇到的问题,并就如何有效推进电子档案管理的发展提出了专业的建议。 首先,文章指出电子信息技术为档案...

    行业资料-电子功用-关于具备草稿纸功能的平板电子设备的说明分析.rar

    本篇文章将深入探讨具备草稿纸功能的平板电子设备的相关知识点,帮助读者全面了解这一创新技术。 首先,我们要明白“草稿纸功能”在平板设备中的具体实现。这种功能通常通过高精度触控屏幕和手写笔技术来实现。高...

    我的CS文件临时的,不要下载

    描述中提到“我的CS文件临时的”,这可能意味着这个文件是开发者在某个开发阶段创建的,可能是一个工作草稿或者是一个暂时性的版本,不适用于长期使用或分享。开发者强调“不要下载”,可能是因为该文件可能包含未...

    springboot031教师工作量管理系统.zip

    - **aaaaaa.txt**:文件名不明确,可能是临时文件或未命名的草稿,具体内容需要查看才能确定。 - **springbootrpj39**:可能是项目的一部分,有可能是SpringBoot应用的源代码或配置文件,具体作用需要解压后查看。 ...

    思迅文件可供大家了解,羡慕这个科研成果吧

    一篇科研论文草稿,即便尚未完成,也能够为同行提供新的研究视角,激发新的学术讨论。通过这种知识共享,科研人员可以加快研究进度,拓展研究的深度和广度,最终为社会带来创新和变革。 概言之,“思迅文件”作为一...

    刘璐璐 二稿 浅谈管理会计在万达商业地产内部管理中的作用.zip

    【压缩包子文件的文件名称】:“刘璐璐 二稿 浅谈管理会计在万达商业地产内部管理中的作用.doc”是文档的全名,表明这是刘璐璐的第二版草稿,专注于讨论管理会计在万达商业地产的内部管理角色。 **管理会计**,是...

    博文一篇博文带萌新建站并了解建站体系流程和便捷方式的资源文件.zip

    4. **静态网站生成器**:对于小型项目,静态网站生成器可以从Markdown或HTML草稿自动生成静态HTML文件,简化了发布流程。 三、资源文件解析: 1. **index.html**:这是网站的首页文件,包含了HTML代码,定义了网站...

    文本合并器

    - **写作与编辑**:作家和编辑可以整合多篇草稿,方便对比和修订。 - **数据分析**:数据分析师在处理大量文本数据时,可以利用此工具快速整理数据。 - **教学材料制作**:教师可以将不同来源的教学资料整合成一份...

    公司行政工作制度.docx

    ### 公司行政工作制度——档案管理篇 #### 第一章 总则 **1. 档案管理目的及责任** - **目的:** 加强文书档案与声像档案资料管理,确保档案资料能够得到及时归档和妥善保存。 - **责任设定:** 公司设立档案室和...

    公司行政工作制度.doc

    ### 公司行政工作制度——档案管理篇 #### 第一章 总则 - **目的与背景**:为规范公司内部档案管理工作,确保各类文书、声像档案资料得到妥善保管和有效利用,特制定本制度。 - **组织结构**: - 设立档案室,并...

    draft:我的笔记本草稿

    由于标签为"C",我们可以推测这篇草稿可能与C语言编程相关。 C语言是计算机科学的基础,是一种广泛使用的、面向过程的编程语言,由Dennis Ritchie在贝尔实验室开发。它具有高效、灵活和可移植性等特性,被用于操作...

Global site tag (gtag.js) - Google Analytics