安卓随记

来源:互联网 发布:淘宝云客服考试 编辑:程序博客网 时间:2024/06/03 20:45

创建点击事件:

findViewById(R.id.button1).setOnClickListener(new View.OnClickListener){

public void onClick(View view){

//点击事件

}

}:


-------------------------------------------------------------------我是一条你看不见的分割线---------------------------------------------------------------------------

打开新的界面

Intent intent = new Intent(当前Activity.class);

startActivity(intent);

-------------------------------------------------------------------我是一条你看不见的分割线---------------------------------------------------------------------------

ADB命令出现 error:  输入
1、adb kill-server

2、adb start-server

3、adb remount


Rect r  = Rect(93, 724 - 522, 1024)
r.bottom =1024
r.left=93
r.right=522
r.top=724
r.centerX()r.centerY()中心值
rect.width()宽
rect.height()高
-------------------------------------------------------------------我是一条你看不见的分割线---------------------------------------------------------------------------
创建文件
File file = new File(Environment.getExternalStorageDirectory() + File.separator + "");
(SD卡目录,文件分割符,文件名) 声明一个文件
if(file.exists){//判断文件是否存在
file.delete;//存在就删除
file.createNewFile//创建文件
}

ouyputStream ot = new FileOutputStream(file,true)//文件输出流
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"><uses-permission>


break  跳出一层循环
加注释跳出注释那层
in:
for (){
for(){
 break in;
  }
}
-------------------------------------------------------------------我是一条你看不见的分割线---------------------------------------------------------------------------
随机数组
java.util.Random random=newjava.util.Random(); 
          intresult=random.nextInt(16);



我是一条分割线

在android中去掉标题栏有三种方法,它们也有各自的特点。

1.在代码里实现

[java] view plain copy
  1. this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏  
记住:这句代码要写在setContentView()前面。

2.在清单文件(manifest.xml)里面实现

[java] view plain copy
  1. <application android:icon="@drawable/icon"   
  2.         android:label="@string/app_name"   
  3.         android:theme="@android:style/Theme.NoTitleBar">  
这样用可以将整个应用设置成无标题栏,如果只需要在一个Activity设置成一个无标题栏的形式,只要把上面的第三行代码写到某一个Activity里面就可以了。

3.在style.xml文件里定义

[html] view plain copy
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <resources>  
  3.     <style name="notitle">  
  4.         <item name="android:windowNoTitle">true</item>  
  5.     </style>   
  6. </resources>  
然后面manifest.xml中引用就可以了,这种方法稍麻烦了些。

[html] view plain copy
  1. <application android:icon="@drawable/icon"   
  2.         android:label="@string/app_name"   
  3.         android:theme="@style/notitle">  

其实可以看得出来,第二种方法和第三种方法实质是一样的,只不过第二种方法调用的是系统定义好的style.xml文件,而第三种方法则是在自己的应用里定义style.xml,然后再自己再调用,其实道理是一样的,第三种方法做起来更有成就感。
我是一条分割线

读取文件信息并一行一行的显示
File file=new File("/mnt/sdcard/aa.txt");
  FileReader fr=new FileReader(file);
  BufferedReader br=new BufferedReader(fr);
  String temp=null;
  String s="";
  while((temp=br.readLine())!=null){
   s+=temp+"\n";
  }
  String [] ss=s.split("\n");
  for (int i = 0; i < ss.length; i++) {
   System.out.println(ss[i]);
  }

我是一条分割线
追加文件内容
 import java.io.FileWriter;
import java.io.IOException;
import java.io.RandomAccessFile;

public class AppendToFile {
    /**
     * A方法追加文件:使用RandomAccessFile
     */
    public static void appendMethodA(String fileName, String content) {
        try {
            // 打开一个随机访问文件流,按读写方式
            RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");
            // 文件长度,字节数
            long fileLength = randomFile.length();
            //将写文件指针移到文件尾。
            randomFile.seek(fileLength);
            randomFile.writeBytes(content);
            randomFile.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * B方法追加文件:使用FileWriter
     */
    public static void appendMethodB(String fileName, String content) {
        try {
            //打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件
            FileWriter writer = new FileWriter(fileName, true);
            writer.write(content);
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        String fileName = "E:/newTemp.dat";
        String content = "new append!";
        //按方法A追加文件
        AppendToFile.appendMethodA(fileName, content);
        AppendToFile.appendMethodA(fileName, "append end.");
        //显示文件内容
        ReadFromFile.readFileByBytes(fileName);//.readFileByLines(fileName);
       /* //按方法B追加文件
        AppendToFile.appendMethodB(fileName, content);
        AppendToFile.appendMethodB(fileName, "append end. \n");
        //显示文件内容
        ReadFromFile.readFileByBytes(fileName);*/
       // ReadFromFile.readFileByLines(fileName);
    }
}


/**
      * 写入结果
      *@params
      */
     publicvoidputRun(Strings) {
          StringrunPath="mnt/sdcard/wlk/log/log.txt";
          try{
              FileWriterfw=null;
          //true为在文本末尾追加
              fw=newFileWriter(runPath,true);
              fw.write(s);
              fw.flush();
              fw.close();
          }catch(Exceptione) {           
          }
     }

我是一条分割线
向文件中添加内容
String str=“SB”;

FileWriter fw=new FileWriter("D:\\log.txt");
fw.write(str);
fw.flush();
fw.close();


我是一条分割线

int -> String

int i=12345;
String s="";
第一种方法:s=i+"";
第二种方法:s=String.valueOf(i);
这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢?

String -> int

s="12345";
int i;
第一种方法:i=Integer.parseInt(s);
第二种方法:i=Integer.valueOf(s).intValue();
这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢?

以下是答案:

第一种方法:s=i+"";   //会产生两个String对象
第二种方法:s=String.valueOf(i); //直接使用String类的静态方法,只产生一个对象

第一种方法:i=Integer.parseInt(s);//直接使用静态方法,不会产生多余的对象,但会抛出异常
第二种方法:i=Integer.valueOf(s).intValue();//Integer.valueOf(s) 相当于 new Integer(Integer.parseInt(s)),也会抛异常,但会多产生一个对象

--------------------------------------------------------------------
1如何将字串 String 转换成整数 int?

A. 有两个方法:

1). int i = Integer.parseInt([String]); 或
i = Integer.parseInt([String],[int radix]);

2). int i = Integer.valueOf(my_str).intValue();

注: 字串转成 Double, Float, Long 的方法大同小异.
2 如何将整数 int 转换成字串 String ?
A. 有叁种方法:

1.) String s = String.valueOf(i);

2.) String s = Integer.toString(i);

3.) String s = "" + i;

注: Double, Float, Long 转成字串的方法大同小异.
我是一条分割线
Date date = newDate()获取当前时间
获取当前时间并转换为字符串
SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Stringstr=format.format(newDate());

public class ConvertDemo {

/**
* 日期转换成字符串
* @param date 
* @return str
*/

public static String DateToStr(Date date) {
  
   SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
   String str = format.format(date);
   return str;


/**
* 字符串转换成日期
* @param str
* @return date
*/
public static Date StrToDate(String str) {
  
   SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
   Date date = null;
   try {
    date = format.parse(str);
   } catch (ParseException e) {
    e.printStackTrace();
   }
   return date;
}

public static void main(String[] args) {
  
   Date date = new Date();
   System.out.println("日期转字符串:" + ConvertDemo.DateToStr(date));
   System.out.println("字符串转日期:" + ConvertDemo.StrToDate(ConvertDemo.DateToStr(date)));
  
}

}
我是一条分割线

不能拿时间戳做数据库的主键  SQL Server 的 datetime 类型的精度其实不是1毫秒,而是3.33毫秒
我是一条分割线
/**\
      * 上下文菜单,执行菜单键时的命令
      */
     publicbooleanonCreateOptionsMenu(Menumenu) {
          getMenuInflater().inflate(R.menu.main,menu);
          returnfalse
     }
     
     /**
      * 获得点击菜单栏按钮
      */
     @Override
     publicbooleanonOptionsItemSelected(MenuItemitem) {
          switch(item.getItemId()) {
          caseR.id.id_map_common:
              //转换卫星地图
               mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
              break;
              
          caseR.id.id_map_site:
              //转换普通地图
               mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
              break;

          caseR.id.id_map_traffic:
              //打开实时交通,判断是否为打开,并转换按钮文字
              if(mBaiduMap.isTrafficEnabled()){
                   mBaiduMap.setTrafficEnabled(false);
                   item.setTitle("实时交通(off)");
              }else{
                   mBaiduMap.setTrafficEnabled(true);
                   item.setTitle("实时交通(on)");
              }
              break;


          default:
              break;
          }
          returnsuper.onOptionsItemSelected(item);
     }
我是一条分割线
安卓监听音量键
@Override
     publicbooleanonKeyDown(intkeyCode, KeyEventevent) {

          switch(keyCode) {
          // 音量减小
          caseKeyEvent.KEYCODE_VOLUME_DOWN:
              Toast.makeText(MainActivity.this,"当前音量值: ", Toast.LENGTH_SHORT).show();
              returntrue;
          // 音量增大
          caseKeyEvent.KEYCODE_VOLUME_UP:
              Toast.makeText(MainActivity.this,"当前音量值: ", Toast.LENGTH_SHORT).show();
              returntrue;
          }
          returnsuper.onKeyDown(keyCode,event);
     }

我是一条分割线
访问MySQL数据库

packagecom.Robyn;

importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;


publicclassMySQLConnect {

     publicstaticvoidmain(String[]args) {
          Connectionconn=null;
          Stringsql;
          //jdbc:mysql://+地址:端口号+/lingchat?+user=账号+&password=密码+&useUnicode=true&characterEncoding=编码格式
          Stringurl="jdbc:mysql://weapp.f3322.net:3306/lingchat?"
                   +"user=hali&password=hali2016&useUnicode=true&characterEncoding=utf8";
          
          try{
              Class.forName("com.mysql.jdbc.Driver");
              System.out.println("成功加载MySQL驱动");
              
              conn= DriverManager.getConnection(url);
              Statementstmt=conn.createStatement();
              sql="select * from lingchat";
              ResultSetrs=stmt.executeQuery(sql);
              System.out.println("问题\t答案");
              
              while(rs.next()) {
                   System.out.println(rs.getString(1) +"\t"+rs.getLong(2));                
              }
              
          }catch(Exceptione) {
              e.printStackTrace();
          }finally{
              try{
                   conn.close();
              }catch(SQLExceptione) {
                   //TODOAuto-generated catch block
                   e.printStackTrace();
              }
          }

     }

}


我是一条分割线
VirtualBox.exe 无法为主机建立一个虚拟器
Failed to open a session for the virtual machine ubuntu_14.04.

Failed to open/create the internal network 'HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter' (VERR_INTNET_FLT_IF_NOT_FOUND).

Failed to attach the network LUN (VERR_INTNET_FLT_IF_NOT_FOUND).

Result Code: E_FAIL (0x80004005)
Component: ConsoleWrap
Interface: IConsole {872da645-4a9b-1727-bee2-5585105b9eed}

  1. 打开Windows网络连接
  2. VirtualBox上右键单击主机只有创建适配器
  3. 选择属性
  4. 检查“的VirtualBox NDIS6桥接网络驱动器”
  5. 禁用和启用适配器前打勾
图片

我是一条分割线

1
2
3
4
5
String str = "今天天气不错";
int index = str.indexOf("天气");
System.out.println(index);   // 大于0 则表示存在 为-1 则表示不存在
String s = str.replace("天气""心情");
System.out.println(s);       // 输出“今天心情不错
我是一条分割线

网页中文字符编码转换

String s="abc";
String s1=URLEncoder.encode(s, "utf-8");

我是一条分割线
  跳转辅助功能界面
Intent intent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS);
   startActivity(intent);


我是一条分割线

给文件加上属性:attrib +a +h +s +r 。这样它就变成隐藏的系统文件了
我是一条分割线

     /**
      * 组合JSON  转换成String
      *
      *@params
      *@paramss
      *@throwsJSONException
      */
     publicvoidputJSON(Strings, Stringss)throwsJSONException {
          inta=s.indexOf(":");
          StringfriendName=s.substring(0,a);
          Stringproblem=s.substring(a+ 2);
          try{

              JSONObjectlan=newJSONObject();
              lan.put("Friend name",friendName);
              lan.put(friendName,ss);
              id=id+ 1;
              System.out.println("封装的JSON:"+lan);

              char[]stack=newchar[1024];
              inttop= -1;
              Stringstr=lan.toString();
              StringBuffersb=newStringBuffer();
              char[]charArray=str.toCharArray();
              for(inti= 0;i<charArray.length;i++) {
                   charc=charArray[i];
                   if('{'==c) {
                        stack[++top] =c;
                        sb.append(charArray[i] +"\n");
                        for(intj= 0;j<=top;j++) {
                             sb.append("\t");
                        }
                        continue;
                   }
                   if((i+ 1) <= (charArray.length- 1)) {
                        chard=charArray[i+ 1];
                        if('}'==d) {
                             top--;// 将数组的最后一个有效内容位置下标减 1,可以简单的理解为将栈顶数据弹出
                             sb.append(charArray[i] +"\n");
                             for(intj= 0;j<=top;j++) {
                                  sb.append("\t");
                             }
                             continue;
                        }
                   }

                   if(','==c) {
                        sb.append(charArray[i] +"\n");
                        for(intj= 0;j<=top;j++) {
                             sb.append("\t");
                        }
                        continue;
                   }
                   sb.append(c);

              }
              System.out.println(sb);
              Stringcon=sb.toString();
              putRun(con);
          }catch(Exceptione) {
              //TODO: handle exception
          }
     }

我是一条分割线

/**
      * 读取文件
      *@parampath     文件路径
      *@paramjsonContent   需要解析的内容
      *@return
      *@throwsIOException
      */
     publicStringFileOut(Stringpath)throwsIOException {
          Stringcontent="";// 文件内容字符串
          // 打开文件
          Filefile=newFile(path);
          // 如果path是传递过来的参数,可以做一个非目录的判断
          if(file.isDirectory()) {
          }else{
              BufferedReaderin=newBufferedReader(newInputStreamReader(newFileInputStream(file),"UTF-8"));
              if(in!=null) {
                   Stringline;
                   // 分行读取
                   while((line=in.readLine()) !=null) {
                        content+=line;

                    //coordinate=line.split("\\,");   分行读取到逗号后的数据
                   }
                   in.close();
              }
          }
          returncontent;

     }

我是一条你看不见的分割线

服务在onStartCommand中调用可暂时使服务后台运行
importandroid.app.Service;
importandroid.content.Intent;
importandroid.os.IBinder;

publicclassMyServerextendsService{
     
     @Override
     publicvoidonCreate() {
          
          super.onCreate();
     }
     
     privateclassServiceThreadextendsThread{

          @Override
          publicvoidrun() {
              //TODOAuto-generated method stub
              super.run();
              for(inti= 0;i< 100;i++) {
                   System.out.println(i);
                   try{
                        Thread.sleep(1000);
                   }catch(InterruptedExceptione) {
                        //TODOAuto-generated catch block
                        e.printStackTrace();
                   }
              }
              
          }
          
     }         
     @Override
     publicintonStartCommand(Intentintent,intflags,intstartId) {
          ServiceThreadst=newServiceThread();
          st.start();
          returnsuper.onStartCommand(intent,flags,startId);
     }
     @Override
     publicIBinder onBind(Intentarg0) {
          //TODOAuto-generated method stub
          returnnull;
     }
     

}


//主方法中调用启动服务
Intentintent=newIntent();
intent.setClass(MainActivity.this, MyServer.class);
startService(intent); 

0 0
原创粉丝点击