安卓随记
2016-04-25 14:11
381 查看
创建点击事件:
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)
[align=left]r.bottom =1024[/align]
[align=left]r.left=93[/align]
[align=left]r.right=522[/align]
[align=left]r.top=724[/align]
[align=left]r.centerX()r.centerY()中心值[/align]
[align=left]rect.width()宽[/align]
[align=left]rect.height()高[/align]
[align=left]-------------------------------------------------------------------我是一条你看不见的分割线---------------------------------------------------------------------------[/align]
创建文件
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;
}
}
-------------------------------------------------------------------我是一条你看不见的分割线---------------------------------------------------------------------------
随机数组
[align=left]java.util.Random random=newjava.util.Random(); [/align]
[align=left] intresult=random.nextInt(16);[/align]
[align=left]一一一一一一一一一一一一一一一一我是一条分割线一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一[/align]
在android中去掉标题栏有三种方法,它们也有各自的特点。
1.在代码里实现
[java] view
plain copy
this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏
记住:这句代码要写在setContentView()前面。
2.在清单文件(manifest.xml)里面实现
[java] view
plain copy
<application android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar">
这样用可以将整个应用设置成无标题栏,如果只需要在一个Activity设置成一个无标题栏的形式,只要把上面的第三行代码写到某一个Activity里面就可以了。
3.在style.xml文件里定义
[html] view
plain copy
<?xml version="1.0" encoding="UTF-8" ?>
<resources>
<style name="notitle">
<item name="android:windowNoTitle">true</item>
</style>
</resources>
然后面manifest.xml中引用就可以了,这种方法稍麻烦了些。
[html] view
plain copy
<application android:icon="@drawable/icon"
android:label="@string/app_name"
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);
}
}
[align=left]/**[/align]
[align=left] * 写入结果[/align]
[align=left] *@params[/align]
[align=left] */[/align]
publicvoidputRun(Strings)
{
[align=left] StringrunPath="mnt/sdcard/wlk/log/log.txt";[/align]
[align=left] try{[/align]
[align=left] FileWriterfw=null;[/align]
[align=left] //true为在文本末尾追加[/align]
[align=left] fw=newFileWriter(runPath,true);[/align]
[align=left] fw.write(s);[/align]
[align=left] fw.flush();[/align]
[align=left] fw.close();[/align]
}catch(Exceptione)
{
[align=left] }[/align]
[align=left] }[/align]
一一一一一一一一一一一一一一一一我是一条分割线一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一
向文件中添加内容
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();
这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢?
以下是答案:
--------------------------------------------------------------------
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");
[align=left]Stringstr=format.format(newDate());[/align]
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毫秒
一一一一一一一一一一一一一一一一我是一条分割线一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一
[align=left]/**\[/align]
[align=left] * 上下文菜单,执行菜单键时的命令[/align]
[align=left] */[/align]
publicbooleanonCreateOptionsMenu(Menumenu)
{
[align=left] getMenuInflater().inflate(R.menu.main,menu);[/align]
[align=left] returnfalse; [/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] /**[/align]
[align=left] * 获得点击菜单栏按钮[/align]
[align=left] */[/align]
[align=left] @Override[/align]
publicbooleanonOptionsItemSelected(MenuItemitem)
{
switch(item.getItemId())
{
[align=left] caseR.id.id_map_common:[/align]
[align=left] //转换卫星地图[/align]
[align=left] mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);[/align]
[align=left] break;[/align]
[align=left] [/align]
[align=left] caseR.id.id_map_site:[/align]
[align=left] //转换普通地图[/align]
[align=left] mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);[/align]
[align=left] break;[/align]
[align=left] caseR.id.id_map_traffic:[/align]
[align=left] //打开实时交通,判断是否为打开,并转换按钮文字[/align]
[align=left] if(mBaiduMap.isTrafficEnabled()){[/align]
[align=left] mBaiduMap.setTrafficEnabled(false);[/align]
[align=left] item.setTitle("实时交通(off)");[/align]
[align=left] }else{[/align]
[align=left] mBaiduMap.setTrafficEnabled(true);[/align]
[align=left] item.setTitle("实时交通(on)");[/align]
[align=left] }[/align]
[align=left] break;[/align]
[align=left] default:[/align]
[align=left] break;[/align]
[align=left] }[/align]
[align=left] returnsuper.onOptionsItemSelected(item);[/align]
[align=left] }[/align]
[align=left]一一一一一一一一一一一一一一一一我是一条分割线一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一[/align]
[align=left]安卓监听音量键[/align]
[align=left]@Override[/align]
publicbooleanonKeyDown(intkeyCode,
KeyEventevent) {
switch(keyCode)
{
[align=left] // 音量减小[/align]
[align=left] caseKeyEvent.KEYCODE_VOLUME_DOWN:[/align]
Toast.makeText(MainActivity.this,"当前音量值:
",Toast.LENGTH_SHORT).show();
[align=left] returntrue;[/align]
[align=left] // 音量增大[/align]
[align=left] caseKeyEvent.KEYCODE_VOLUME_UP:[/align]
Toast.makeText(MainActivity.this,"当前音量值:
",Toast.LENGTH_SHORT).show();
[align=left] returntrue;[/align]
[align=left] }[/align]
[align=left] returnsuper.onKeyDown(keyCode,event);[/align]
[align=left] }[/align]
[align=left]一一一一一一一一一一一一一一一一我是一条分割线一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一[/align]
[align=left]访问MySQL数据库[/align]
[align=left]packagecom.Robyn;[/align]
[align=left]importjava.sql.Connection;[/align]
[align=left]importjava.sql.DriverManager;[/align]
[align=left]importjava.sql.ResultSet;[/align]
[align=left]importjava.sql.SQLException;[/align]
[align=left]importjava.sql.Statement;[/align]
publicclassMySQLConnect
{
publicstaticvoidmain(String[]args)
{
[align=left] Connectionconn=null;[/align]
[align=left] Stringsql;[/align]
[align=left] //jdbc:mysql://+地址:端口号+/lingchat?+user=账号+&password=密码+&useUnicode=true&characterEncoding=编码格式[/align]
[align=left] Stringurl="jdbc:mysql://weapp.f3322.net:3306/lingchat?"[/align]
[align=left] +"user=hali&password=hali2016&useUnicode=true&characterEncoding=utf8";[/align]
[align=left] [/align]
[align=left] try{[/align]
[align=left] Class.forName("com.mysql.jdbc.Driver");[/align]
[align=left] System.out.println("成功加载MySQL驱动");[/align]
[align=left] [/align]
conn=
DriverManager.getConnection(url);
[align=left] Statementstmt=conn.createStatement();[/align]
sql="select
* from lingchat";
[align=left] ResultSetrs=stmt.executeQuery(sql);[/align]
[align=left] System.out.println("问题\t答案");[/align]
[align=left] [/align]
while(rs.next())
{
System.out.println(rs.getString(1)
+"\t"+rs.getLong(2));
[align=left] }[/align]
[align=left] [/align]
}catch(Exceptione)
{
[align=left] e.printStackTrace();[/align]
[align=left] }finally{[/align]
[align=left] try{[/align]
[align=left] conn.close();[/align]
}catch(SQLExceptione)
{
//TODOAuto-generated
catch block
[align=left] e.printStackTrace();[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]}[/align]
[align=left]一一一一一一一一一一一一一一一一我是一条分割线一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一[/align]
[align=left]VirtualBox.exe 无法为主机建立一个虚拟器[/align]
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}
打开Windows网络连接
VirtualBox上右键单击主机只有创建适配器
选择属性
检查“的VirtualBox NDIS6桥接网络驱动器”
禁用和启用适配器前打勾
[align=left]一一一一一一一一一一一一一一一一我是一条分割线一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一[/align]
[align=left]一一一一一一一一一一一一一一一一我是一条分割线一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一[/align]
[align=left]网页中文字符编码转换[/align]
String s="abc";
String s1=URLEncoder.encode(s,"utf-8");
[align=left]一一一一一一一一一一一一一一一一我是一条分割线一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一[/align]
startActivity(intent);
一一一一一一一一一一一一一一一一我是一条分割线一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一
给文件加上属性:attrib +a +h +s +r 。这样它就变成隐藏的系统文件了
一一一一一一一一一一一一一一一一我是一条分割线一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一
[align=left] /**[/align]
[align=left] * 组合JSON 转换成String[/align]
[align=left] *[/align]
[align=left] *@params[/align]
[align=left] *@paramss[/align]
[align=left] *@throwsJSONException[/align]
[align=left] */[/align]
publicvoidputJSON(Strings,
Stringss)throwsJSONException
{
[align=left] inta=s.indexOf(":");[/align]
[align=left] StringfriendName=s.substring(0,a);[/align]
Stringproblem=s.substring(a+
2);
[align=left] try{[/align]
[align=left] JSONObjectlan=newJSONObject();[/align]
lan.put("Friend
name",friendName);
[align=left] lan.put(friendName,ss);[/align]
id=id+
1;
[align=left] System.out.println("封装的JSON:"+lan);[/align]
[align=left] char[]stack=newchar[1024];[/align]
inttop=
-1;
[align=left] Stringstr=lan.toString();[/align]
[align=left] StringBuffersb=newStringBuffer();[/align]
[align=left] char[]charArray=str.toCharArray();[/align]
for(inti=
0;i<charArray.length;i++)
{
[align=left] charc=charArray[i];[/align]
if('{'==c)
{
stack[++top]
=c;
sb.append(charArray[i]
+"\n");
for(intj=
0;j<=top;j++)
{
[align=left] sb.append("\t");[/align]
[align=left] }[/align]
[align=left] continue;[/align]
[align=left] }[/align]
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++)
{
[align=left] sb.append("\t");[/align]
[align=left] }[/align]
[align=left] continue;[/align]
[align=left] }[/align]
[align=left] }[/align]
if(','==c)
{
sb.append(charArray[i]
+"\n");
for(intj=
0;j<=top;j++)
{
[align=left] sb.append("\t");[/align]
[align=left] }[/align]
[align=left] continue;[/align]
[align=left] }[/align]
[align=left] sb.append(c);[/align]
[align=left] }[/align]
[align=left] System.out.println(sb);[/align]
[align=left] Stringcon=sb.toString();[/align]
[align=left] putRun(con);[/align]
}catch(Exceptione)
{
//TODO:
handle exception
[align=left] }[/align]
[align=left] }[/align]
一一一一一一一一一一一一一一一一我是一条分割线一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一
[align=left]/**[/align]
[align=left] * 读取文件[/align]
*@parampath
文件路径
[align=left] *@paramjsonContent 需要解析的内容[/align]
[align=left] *@return[/align]
[align=left] *@throwsIOException[/align]
[align=left] */[/align]
publicStringFileOut(Stringpath)throwsIOException
{
Stringcontent="";//
文件内容字符串
[align=left] // 打开文件[/align]
[align=left] Filefile=newFile(path);[/align]
[align=left] // 如果path是传递过来的参数,可以做一个非目录的判断[/align]
if(file.isDirectory())
{
[align=left] }else{[/align]
[align=left] BufferedReaderin=newBufferedReader(newInputStreamReader(newFileInputStream(file),"UTF-8"));[/align]
if(in!=null)
{
[align=left] Stringline;[/align]
[align=left] // 分行读取[/align]
while((line=in.readLine())
!=null) {
[align=left] content+=line;[/align]
//coordinate=line.split("\\,");
分行读取到逗号后的数据
[align=left] }[/align]
[align=left] in.close();[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] returncontent;[/align]
[align=left] }[/align]
一一一一一一一一一一一一一一一一我是一条你看不见的分割线一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一
服务在onStartCommand中调用可暂时使服务后台运行
[align=left]importandroid.app.Service;[/align]
[align=left]importandroid.content.Intent;[/align]
[align=left]importandroid.os.IBinder;[/align]
[align=left]publicclassMyServerextendsService{[/align]
[align=left] [/align]
[align=left] @Override[/align]
publicvoidonCreate()
{
[align=left] [/align]
[align=left] super.onCreate();[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] privateclassServiceThreadextendsThread{[/align]
[align=left] @Override[/align]
publicvoidrun()
{
//TODOAuto-generated
method stub
[align=left] super.run();[/align]
for(inti=
0;i< 100;i++)
{
[align=left] System.out.println(i);[/align]
[align=left] try{[/align]
[align=left] Thread.sleep(1000);[/align]
}catch(InterruptedExceptione)
{
//TODOAuto-generated
catch block
[align=left] e.printStackTrace();[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] } [/align]
[align=left] @Override[/align]
publicintonStartCommand(Intentintent,intflags,intstartId)
{
[align=left] ServiceThreadst=newServiceThread();[/align]
[align=left] st.start();[/align]
[align=left] returnsuper.onStartCommand(intent,flags,startId);[/align]
[align=left] }[/align]
[align=left] @Override[/align]
publicIBinder
onBind(Intentarg0) {
//TODOAuto-generated
method stub
[align=left] returnnull;[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left]}[/align]
//主方法中调用启动服务
[align=left]Intentintent=newIntent();[/align]
intent.setClass(MainActivity.this,
MyServer.class);
[align=left]startService(intent); [/align]
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)
[align=left]r.bottom =1024[/align]
[align=left]r.left=93[/align]
[align=left]r.right=522[/align]
[align=left]r.top=724[/align]
[align=left]r.centerX()r.centerY()中心值[/align]
[align=left]rect.width()宽[/align]
[align=left]rect.height()高[/align]
[align=left]-------------------------------------------------------------------我是一条你看不见的分割线---------------------------------------------------------------------------[/align]
创建文件
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;
}
}
-------------------------------------------------------------------我是一条你看不见的分割线---------------------------------------------------------------------------
随机数组
[align=left]java.util.Random random=newjava.util.Random(); [/align]
[align=left] intresult=random.nextInt(16);[/align]
[align=left]一一一一一一一一一一一一一一一一我是一条分割线一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一[/align]
在android中去掉标题栏有三种方法,它们也有各自的特点。
1.在代码里实现
[java] view
plain copy
this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏
记住:这句代码要写在setContentView()前面。
2.在清单文件(manifest.xml)里面实现
[java] view
plain copy
<application android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar">
这样用可以将整个应用设置成无标题栏,如果只需要在一个Activity设置成一个无标题栏的形式,只要把上面的第三行代码写到某一个Activity里面就可以了。
3.在style.xml文件里定义
[html] view
plain copy
<?xml version="1.0" encoding="UTF-8" ?>
<resources>
<style name="notitle">
<item name="android:windowNoTitle">true</item>
</style>
</resources>
然后面manifest.xml中引用就可以了,这种方法稍麻烦了些。
[html] view
plain copy
<application android:icon="@drawable/icon"
android:label="@string/app_name"
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);
}
}
[align=left]/**[/align]
[align=left] * 写入结果[/align]
[align=left] *@params[/align]
[align=left] */[/align]
publicvoidputRun(Strings)
{
[align=left] StringrunPath="mnt/sdcard/wlk/log/log.txt";[/align]
[align=left] try{[/align]
[align=left] FileWriterfw=null;[/align]
[align=left] //true为在文本末尾追加[/align]
[align=left] fw=newFileWriter(runPath,true);[/align]
[align=left] fw.write(s);[/align]
[align=left] fw.flush();[/align]
[align=left] fw.close();[/align]
}catch(Exceptione)
{
[align=left] }[/align]
[align=left] }[/align]
一一一一一一一一一一一一一一一一我是一条分割线一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一
向文件中添加内容
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");
[align=left]Stringstr=format.format(newDate());[/align]
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毫秒
一一一一一一一一一一一一一一一一我是一条分割线一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一
[align=left]/**\[/align]
[align=left] * 上下文菜单,执行菜单键时的命令[/align]
[align=left] */[/align]
publicbooleanonCreateOptionsMenu(Menumenu)
{
[align=left] getMenuInflater().inflate(R.menu.main,menu);[/align]
[align=left] returnfalse; [/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] /**[/align]
[align=left] * 获得点击菜单栏按钮[/align]
[align=left] */[/align]
[align=left] @Override[/align]
publicbooleanonOptionsItemSelected(MenuItemitem)
{
switch(item.getItemId())
{
[align=left] caseR.id.id_map_common:[/align]
[align=left] //转换卫星地图[/align]
[align=left] mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);[/align]
[align=left] break;[/align]
[align=left] [/align]
[align=left] caseR.id.id_map_site:[/align]
[align=left] //转换普通地图[/align]
[align=left] mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);[/align]
[align=left] break;[/align]
[align=left] caseR.id.id_map_traffic:[/align]
[align=left] //打开实时交通,判断是否为打开,并转换按钮文字[/align]
[align=left] if(mBaiduMap.isTrafficEnabled()){[/align]
[align=left] mBaiduMap.setTrafficEnabled(false);[/align]
[align=left] item.setTitle("实时交通(off)");[/align]
[align=left] }else{[/align]
[align=left] mBaiduMap.setTrafficEnabled(true);[/align]
[align=left] item.setTitle("实时交通(on)");[/align]
[align=left] }[/align]
[align=left] break;[/align]
[align=left] default:[/align]
[align=left] break;[/align]
[align=left] }[/align]
[align=left] returnsuper.onOptionsItemSelected(item);[/align]
[align=left] }[/align]
[align=left]一一一一一一一一一一一一一一一一我是一条分割线一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一[/align]
[align=left]安卓监听音量键[/align]
[align=left]@Override[/align]
publicbooleanonKeyDown(intkeyCode,
KeyEventevent) {
switch(keyCode)
{
[align=left] // 音量减小[/align]
[align=left] caseKeyEvent.KEYCODE_VOLUME_DOWN:[/align]
Toast.makeText(MainActivity.this,"当前音量值:
",Toast.LENGTH_SHORT).show();
[align=left] returntrue;[/align]
[align=left] // 音量增大[/align]
[align=left] caseKeyEvent.KEYCODE_VOLUME_UP:[/align]
Toast.makeText(MainActivity.this,"当前音量值:
",Toast.LENGTH_SHORT).show();
[align=left] returntrue;[/align]
[align=left] }[/align]
[align=left] returnsuper.onKeyDown(keyCode,event);[/align]
[align=left] }[/align]
[align=left]一一一一一一一一一一一一一一一一我是一条分割线一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一[/align]
[align=left]访问MySQL数据库[/align]
[align=left]packagecom.Robyn;[/align]
[align=left]importjava.sql.Connection;[/align]
[align=left]importjava.sql.DriverManager;[/align]
[align=left]importjava.sql.ResultSet;[/align]
[align=left]importjava.sql.SQLException;[/align]
[align=left]importjava.sql.Statement;[/align]
publicclassMySQLConnect
{
publicstaticvoidmain(String[]args)
{
[align=left] Connectionconn=null;[/align]
[align=left] Stringsql;[/align]
[align=left] //jdbc:mysql://+地址:端口号+/lingchat?+user=账号+&password=密码+&useUnicode=true&characterEncoding=编码格式[/align]
[align=left] Stringurl="jdbc:mysql://weapp.f3322.net:3306/lingchat?"[/align]
[align=left] +"user=hali&password=hali2016&useUnicode=true&characterEncoding=utf8";[/align]
[align=left] [/align]
[align=left] try{[/align]
[align=left] Class.forName("com.mysql.jdbc.Driver");[/align]
[align=left] System.out.println("成功加载MySQL驱动");[/align]
[align=left] [/align]
conn=
DriverManager.getConnection(url);
[align=left] Statementstmt=conn.createStatement();[/align]
sql="select
* from lingchat";
[align=left] ResultSetrs=stmt.executeQuery(sql);[/align]
[align=left] System.out.println("问题\t答案");[/align]
[align=left] [/align]
while(rs.next())
{
System.out.println(rs.getString(1)
+"\t"+rs.getLong(2));
[align=left] }[/align]
[align=left] [/align]
}catch(Exceptione)
{
[align=left] e.printStackTrace();[/align]
[align=left] }finally{[/align]
[align=left] try{[/align]
[align=left] conn.close();[/align]
}catch(SQLExceptione)
{
//TODOAuto-generated
catch block
[align=left] e.printStackTrace();[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]}[/align]
[align=left]一一一一一一一一一一一一一一一一我是一条分割线一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一[/align]
[align=left]VirtualBox.exe 无法为主机建立一个虚拟器[/align]
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}
打开Windows网络连接
VirtualBox上右键单击主机只有创建适配器
选择属性
检查“的VirtualBox NDIS6桥接网络驱动器”
禁用和启用适配器前打勾
[align=left]一一一一一一一一一一一一一一一一我是一条分割线一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一[/align]
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); // 输出“今天心情不错 |
[align=left]网页中文字符编码转换[/align]
String s="abc";
String s1=URLEncoder.encode(s,"utf-8");
[align=left]一一一一一一一一一一一一一一一一我是一条分割线一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一[/align]
跳转辅助功能界面
Intent intent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS);
startActivity(intent);
一一一一一一一一一一一一一一一一我是一条分割线一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一
给文件加上属性:attrib +a +h +s +r 。这样它就变成隐藏的系统文件了
一一一一一一一一一一一一一一一一我是一条分割线一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一
[align=left] /**[/align]
[align=left] * 组合JSON 转换成String[/align]
[align=left] *[/align]
[align=left] *@params[/align]
[align=left] *@paramss[/align]
[align=left] *@throwsJSONException[/align]
[align=left] */[/align]
publicvoidputJSON(Strings,
Stringss)throwsJSONException
{
[align=left] inta=s.indexOf(":");[/align]
[align=left] StringfriendName=s.substring(0,a);[/align]
Stringproblem=s.substring(a+
2);
[align=left] try{[/align]
[align=left] JSONObjectlan=newJSONObject();[/align]
lan.put("Friend
name",friendName);
[align=left] lan.put(friendName,ss);[/align]
id=id+
1;
[align=left] System.out.println("封装的JSON:"+lan);[/align]
[align=left] char[]stack=newchar[1024];[/align]
inttop=
-1;
[align=left] Stringstr=lan.toString();[/align]
[align=left] StringBuffersb=newStringBuffer();[/align]
[align=left] char[]charArray=str.toCharArray();[/align]
for(inti=
0;i<charArray.length;i++)
{
[align=left] charc=charArray[i];[/align]
if('{'==c)
{
stack[++top]
=c;
sb.append(charArray[i]
+"\n");
for(intj=
0;j<=top;j++)
{
[align=left] sb.append("\t");[/align]
[align=left] }[/align]
[align=left] continue;[/align]
[align=left] }[/align]
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++)
{
[align=left] sb.append("\t");[/align]
[align=left] }[/align]
[align=left] continue;[/align]
[align=left] }[/align]
[align=left] }[/align]
if(','==c)
{
sb.append(charArray[i]
+"\n");
for(intj=
0;j<=top;j++)
{
[align=left] sb.append("\t");[/align]
[align=left] }[/align]
[align=left] continue;[/align]
[align=left] }[/align]
[align=left] sb.append(c);[/align]
[align=left] }[/align]
[align=left] System.out.println(sb);[/align]
[align=left] Stringcon=sb.toString();[/align]
[align=left] putRun(con);[/align]
}catch(Exceptione)
{
//TODO:
handle exception
[align=left] }[/align]
[align=left] }[/align]
一一一一一一一一一一一一一一一一我是一条分割线一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一
[align=left]/**[/align]
[align=left] * 读取文件[/align]
*@parampath
文件路径
[align=left] *@paramjsonContent 需要解析的内容[/align]
[align=left] *@return[/align]
[align=left] *@throwsIOException[/align]
[align=left] */[/align]
publicStringFileOut(Stringpath)throwsIOException
{
Stringcontent="";//
文件内容字符串
[align=left] // 打开文件[/align]
[align=left] Filefile=newFile(path);[/align]
[align=left] // 如果path是传递过来的参数,可以做一个非目录的判断[/align]
if(file.isDirectory())
{
[align=left] }else{[/align]
[align=left] BufferedReaderin=newBufferedReader(newInputStreamReader(newFileInputStream(file),"UTF-8"));[/align]
if(in!=null)
{
[align=left] Stringline;[/align]
[align=left] // 分行读取[/align]
while((line=in.readLine())
!=null) {
[align=left] content+=line;[/align]
//coordinate=line.split("\\,");
分行读取到逗号后的数据
[align=left] }[/align]
[align=left] in.close();[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] returncontent;[/align]
[align=left] }[/align]
一一一一一一一一一一一一一一一一我是一条你看不见的分割线一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一
服务在onStartCommand中调用可暂时使服务后台运行
[align=left]importandroid.app.Service;[/align]
[align=left]importandroid.content.Intent;[/align]
[align=left]importandroid.os.IBinder;[/align]
[align=left]publicclassMyServerextendsService{[/align]
[align=left] [/align]
[align=left] @Override[/align]
publicvoidonCreate()
{
[align=left] [/align]
[align=left] super.onCreate();[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] privateclassServiceThreadextendsThread{[/align]
[align=left] @Override[/align]
publicvoidrun()
{
//TODOAuto-generated
method stub
[align=left] super.run();[/align]
for(inti=
0;i< 100;i++)
{
[align=left] System.out.println(i);[/align]
[align=left] try{[/align]
[align=left] Thread.sleep(1000);[/align]
}catch(InterruptedExceptione)
{
//TODOAuto-generated
catch block
[align=left] e.printStackTrace();[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] } [/align]
[align=left] @Override[/align]
publicintonStartCommand(Intentintent,intflags,intstartId)
{
[align=left] ServiceThreadst=newServiceThread();[/align]
[align=left] st.start();[/align]
[align=left] returnsuper.onStartCommand(intent,flags,startId);[/align]
[align=left] }[/align]
[align=left] @Override[/align]
publicIBinder
onBind(Intentarg0) {
//TODOAuto-generated
method stub
[align=left] returnnull;[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left]}[/align]
//主方法中调用启动服务
[align=left]Intentintent=newIntent();[/align]
intent.setClass(MainActivity.this,
MyServer.class);
[align=left]startService(intent); [/align]
相关文章推荐
- udp组播的奇怪现象
- leetcode twosum
- doT.js初学代码
- ubuntu系统还原
- 对“视觉机器学习20讲配套仿真代码”的研究心得---SVM方法
- 线程池一
- 导出EXCEL表格
- 电脑桌面右下角出现测试模式 Windows7内部版本
- 每天一道算法题(七)Leetcode – Word BreakII (Java)
- 对“视觉机器学习20讲配套仿真代码”的研究心得---Adaboost(一)
- VisualGDB-5.2BETA4破解
- 调试时设置条件断点
- 对于undefined reference stderr问题的解决
- MySQL连接、删除、创建与调优
- php 图片上传
- Centos上pytest环境搭建
- 配置Eclipse支持java和xml文件的代码补全功能
- nasha
- Linux的别名链接和ll命令
- linux快速安装redmine