当前位置:  编程技术>移动开发
本页文章导读:
    ▪应用Java I/O流快速搜索手机文件引擎        使用Java I/O流快速搜索手机文件引擎使用Java I/O流快速搜索手机文件引擎 文件搜索功能可以快速协助我们找到想要的文件,在手机上制作一个文件搜索的功能其实并不困难,Java I/O的API中提供.........
    ▪ viewController 各个life cycle阶段,view跟 subviews 的frame 状态分析        viewController 各个life cycle阶段,view和 subviews 的frame 状态分析 2013-03-27 17:04:40.605 testView[4685:c07] --- viewDidLoad.. --- 2013-03-27 17:04:40.608 testView[4685:c07] <UIView: 0x7553320; frame = (0 20; 320 460); autoresize =.........
    ▪ Java中的种的定义、方法的定义和使用       Java中的类的定义、方法的定义和使用public class Test//定义一个类,名字叫Test { public int add(int a, int b)//定义一个方法(add),两个整数相加的方法 { return a + b;//将a + b的值返回回去 } .........

[1]应用Java I/O流快速搜索手机文件引擎
    来源: 互联网  发布时间: 2014-02-18
使用Java I/O流快速搜索手机文件引擎

使用Java I/O流快速搜索手机文件引擎

文件搜索功能可以快速协助我们找到想要的文件,在手机上制作一个文件搜索的功能其实并不困难,Java I/O的API中提供了java.io.File对象,只要利用File对象的方法,再搭配Android的EditText、TextView等对象,就可以轻松做出一个手机的文件搜索引擎。

下面是程序源码:

package com.example.test01;
 
import java.io.File;
import java.util.Iterator;
 
import android.app.Activity;
importandroid.content.Context;
importandroid.content.res.TypedArray;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
importandroid.view.ViewGroup;
importandroid.widget.AdapterView.OnItemClickListener;
importandroid.widget.AdapterView;
importandroid.widget.BaseAdapter;
importandroid.widget.Button;
importandroid.widget.EditText;
importandroid.widget.Gallery;
importandroid.widget.ImageView;
importandroid.widget.TextView;
import android.widget.Toast;
 
public class MainActivityextends Activity {
 
       Button button01;
       EditText editText01;
       TextView textView01;
      
       @Override
       protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);
              button01 = (Button)findViewById(R.id.button01);
              editText01 = (EditText)findViewById(R.id.editText01);
              textView01 = (TextView)findViewById(R.id.textView01);
             
              button01.setOnClickListener(new OnClickListener() {
                    
                     public void onClick(View v) {
                            //取得输入的关键字
                            String string =editText01.getText().toString();
                            if (string.equals("")) {
                                   textView01.setText("请勿输入空白的关键字!");
                            }
                            else
                            {
                                          textView01.setText(SearchFile(string));
                            }
                     }
              });
       }
      
       //搜索文件的方法
       public String SearchFile(String string)
       {
              String result = "";
              File[] file = new File("/").listFiles();
              for (File file2 : file) {
                     if (file2.getName().indexOf(string) >= 0) {
                            result += file2.getPath() +"\n";
                     }
              }
              if (result.equals("")) result = "找不到文件!";
              return result;
       }
      
       @Override
       public boolean onCreateOptionsMenu(Menu menu) {
              // Inflate the menu; this adds items to the action barif it is present.
              getMenuInflater().inflate(R.menu.main, menu);
              return true;
       }
 
}

运行效果如图:

 

扩展学习:

在本范例中,searchFile(String)方法的功能仅为搜索根目录下符合关键字的文件,并没有进一步再对子目录下的文件进行搜索。如果想实现这个功能,我们可以利用File.isDirectory()这个方法来判断其是否为目录,如果是则继续向下搜索,否则终止向下搜索。所以我们需要运用递归的思想,下面是对searchFile()方法的改进,考虑到手机能否负荷大规模的文件搜索,我们将起始搜索位置定在sdcard中:

//搜索文件的方法,参数分别为关键字,搜索目录,搜索结果
       public String SearchFile(String keywords , String filePath ,String result)
       {
              String temp = "";
              File[] file;
              if (filePath == null) {
                     file = newFile("/sdcard").listFiles();
              }
              else
              {
                     file = new File(filePath).listFiles();
                    
              }
              for (File file2 : file) {
                     if (file2.isDirectory()) {
                            //不搜索系统文件夹
                            if(!file2.getName().contains(".")) {
                                   temp += SearchFile(keywords,file2.getAbsolutePath(), result);
                            }
                     }
                     else
                     {
                            if (file2.getName().contains(keywords)) {
                                   temp += file2.getPath() +"\n";
                            }
                     }
              }
              if (temp.equals("")) temp = "";
              return temp;
       }

 运行效果图:



    
[2] viewController 各个life cycle阶段,view跟 subviews 的frame 状态分析
    来源: 互联网  发布时间: 2014-02-18
viewController 各个life cycle阶段,view和 subviews 的frame 状态分析


2013-03-27 17:04:40.605 testView[4685:c07] --- viewDidLoad.. ---

2013-03-27 17:04:40.608 testView[4685:c07] <UIView: 0x7553320; frame = (0 20; 320 460); autoresize = RM+BM; layer = <CALayer: 0x7553380>>

2013-03-27 17:04:40.609 testView[4685:c07] <UIScrollView: 0x7551890; frame = (0 0; 0 0); clipsToBounds = YES; autoresize = TM+BM; gestureRecognizers = <NSArray: 0x75528a0>; layer = <CALayer: 0x7551ab0>; contentOffset: {0, 0}>

2013-03-27 17:04:40.610 testView[4685:c07] <UIScrollView: 0x7551890; frame = (0 0; 0 0); clipsToBounds = YES; autoresize = TM+BM; gestureRecognizers = <NSArray: 0x75528a0>; layer = <CALayer: 0x7551ab0>; contentOffset: {0, 0}>

2013-03-27 17:04:40.613 testView[4685:c07] view bounds-origin: 0.00 0.00 size:320.00 460.00 

2013-03-27 17:04:40.614 testView[4685:c07] bounds-origin: 0.00 0.00 size:0.00 0.00 


viewDidLoad 的时候,self.view 和subview 的frame 未完成初始化,所以它们的frame 都是0,0,0,0

2013-03-27 17:04:40.615 testView[4685:c07] --- viewWillAppear.. ---

2013-03-27 17:16:18.755 testView[4745:c07] <UIView: 0x7557620; frame = (0 20; 320 460); autoresize = RM+BM; layer = <CALayer: 0x7557680>>

2013-03-27 17:16:18.756 testView[4745:c07] <UIScrollView: 0x7555b90; frame = (0 0; 0 0); clipsToBounds = YES; autoresize = TM+BM; gestureRecognizers = <NSArray: 0x7556ba0>; layer = <CALayer: 0x7555db0>; contentOffset: {0, 0}>


2013-03-27 17:04:40.618 testView[4685:c07] view bounds-origin: 0.00 0.00 size:320.00 460.00 

2013-03-27 17:04:40.620 testView[4685:c07] scrollview bounds-origin: 0.00 0.00 size:0.00 0.00 


viewWillAppear 的时候,self.view 保证完成初始化,但是subview 的frame 未完成初始化,所以view的frame size 是 size:320.00 460.00 ,但是subview 仍然是 0,0

2013-03-27 17:04:40.633 testView[4685:c07] --- viewDidAppear.. ---

2013-03-27 17:16:18.773 testView[4745:c07] <UIView: 0x7557620; frame = (0 20; 320 460); autoresize = RM+BM; layer = <CALayer: 0x7557680>>

2013-03-27 17:16:18.775 testView[4745:c07] <UIScrollView: 0x7555b90; frame = (0 0; 320 460); clipsToBounds = YES; autoresize = TM+BM; gestureRecognizers = <NSArray: 0x7556ba0>; layer = <CALayer: 0x7555db0>; contentOffset: {0, 0}>

2013-03-27 17:04:40.637 testView[4685:c07] view bounds-origin: 0.00 0.00 size:320.00 460.00 

2013-03-27 17:04:40.639 testView[4685:c07] scrollview bounds-origin: 0.00 0.00 size:320.00 460.00 


viewDidAppear 的时候,subview 也终于完成初始化


然后通过一个按钮,我让scrollview 的contentOffset 偏移了 (0,-50)
2013-03-27 17:04:48.304 testView[4685:c07] --- moved.. ---


2013-03-27 17:19:30.464 testView[4774:c07] --- moved.. ---

2013-03-27 17:19:30.465 testView[4774:c07] <UIView: 0x75b3d80; frame = (0 20; 320 460); autoresize = RM+BM; layer = <CALayer: 0x75b3de0>>

2013-03-27 17:19:30.465 testView[4774:c07] <UIScrollView: 0x75b22f0; frame = (0 0; 320 460); clipsToBounds = YES; autoresize = TM+BM; gestureRecognizers = <NSArray: 0x75b3300>; layer = <CALayer: 0x75b2510>; contentOffset: {0, -50}>

2013-03-27 17:19:30.467 testView[4774:c07] view bounds-origin: 0.00 0.00 size:320.00 460.00 

2013-03-27 17:19:30.468 testView[4774:c07] bounds-origin: 0.00 -50.00 size:320.00 460.00 

留意到偏移了之后,scrollview除了 contentOffset 改变了, bounds的坐标也一样改变。


-----
如果你尝试过,把某个view中的一个subview的坐标 改到负值,例如(-100,-50)
这样subview 的位置frame是超出了view 的bounds的。

这时候,假设subview其实是个Button,即便Button是可视的,肉眼可见,也是enable状态,你也按不到它。

似乎iOS上,超出bounds 范围的subview 是认为不可交互的。


    
[3] Java中的种的定义、方法的定义和使用
    来源: 互联网  发布时间: 2014-02-18
Java中的类的定义、方法的定义和使用
public class Test//定义一个类,名字叫Test
{
    public int add(int a, int b)//定义一个方法(add),两个整数相加的方法
    {
	return a + b;//将a + b的值返回回去
    }

    public static void main(String[] args)
    {
	Test test = new Test();//生成一个新的对象

	int a = 3;
	int b = 4;//将a,b赋初值为3,4

	int c = test.add(a, b);//调用add方法,将运算后结果的值赋给c

	System.out.println(a);
	System.out.println(b);
	System.out.println(c);//输出打印a、b、c的值
    }
}

1楼maomao9691693439小时前package u;nnpublic class Plus {ntpublic int plus(int a, int b) {nttreturn a + b;nt}nntpublic static void main(String[] args) {nttSystem.out.println(new Plus().plus(1, 2));nt}n}nnnn这样写会不会更简单勒

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3