您的位置:首页 > 移动开发 > Android开发

Android 小功能

2017-02-20 17:04 85 查看

小功能

打开QQ并与指定的人聊天

String url = "mqqwpa://im/chat?chat_type=wpa&uin=920800319";
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));


打开网页

Uri uri = Uri.parse("www.baidu.com");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);


简单的发送邮件

有多发,带附件…等等等等的,详情百度

Intent data=new Intent(Intent.ACTION_SENDTO);
data.setData(Uri.parse("mailto:" + mailbox.getText().toString()));
//data.putExtra(Intent.EXTRA_SUBJECT, "这是标题");
//data.putExtra(Intent.EXTRA_TEXT, "这是内容");
startActivity(data);


双击返回按钮退出

private long exitTime = 0;                     //保存上次按下返回按钮的时间
@Override //连续按下Back键退出
public void onBackPressed() {
if((System.currentTimeMillis()-exitTime) > 2000){                    //间隔大于2000毫秒 == 2秒
Toast.makeText(getApplicationContext(), "再按一次退出程序", 0).show();
exitTime = System.currentTimeMillis();       //System.currentTimeMillis()获取当前系统时间毫秒数
} else {
finish();                  //结束Activity
}
}


private long exitTime = 0;                     //保存上次按下返回按钮的时间
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {     //需要获得硬件上的按键响应  通过计算按键时间差实现
if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){    //按下返回按钮
if((System.currentTimeMillis()-exitTime) > 2000){                    //间隔大于2000毫秒 == 2秒
Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();       //System.currentTimeMillis()获取当前系统时间毫秒数
} else {
finish();                  //结束Activity
System.exit(0);      //退出程序
}
return true;
}
return super.onKeyDown(keyCode, event);
}


版本信息

获取当前程序版本名

public static String getAppVersionName(Context context) {
String versionName = "";
try {
// ---get the package info---
PackageManager pm = context.getPackageManager();
PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0);
versionName = pi.versionName;
versioncode = pi.versionCode;
if (versionName == null || versionName.length() <= 0) {
return "";
}
} catch (Exception e) {
Log.e("VersionInfo", "Exception", e);
}
return versionName;
}


获取当前系统的版本号

textView.setText("Product Model: " + android.os.Build.MODEL + ","
+ android.os.Build.VERSION.SDK + ","
+ android.os.Build.VERSION.RELEASE);


获取当前系统的android版本号

int currentapiVersion=android.os.Build.VERSION.SDK_INT;


光标事件

//etNumber = (EditText) findViewById(R.id.et_number);
etNumber.setOnFocusChangeListener(new OnFocusChangeListener() {          //光标事件
<
4000
span class="hljs-keyword">public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {                                                         //光标在控件
//主要用于输入帐号时自动输入已保存的密码
}else {                                                                      //当光标离开时
String qq = etNumber.getText().toString();
String pwd = map.get(qq);
etPassword.setText(pwd);
}}});


etNumber.setOnFocusChangeListener(new OnFocusChangeListener() {  //光标事件

@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) { //光标在控件

}else { //当光标离开时
String qq = etNumber.getText().toString();
//查询
SQLiteDatabase sqLiteDatabase = QQsj.getReadableDatabase();//获取数据库
Cursor cursor = sqLiteDatabase.rawQuery("select Password from student where num = " + qq,null);
if (cursor != null) {
int pwd = cursor.getInt(0);
etPassword.setText(pwd);
}
sqLiteDatabase.close();
}


移动屏幕

public voidscrollTo(int x, int y)

它表示移动到视图的那个坐标点。哪个视图调用这个方法,那么这个视图的(x,y)点就与手机屏幕的左上角对齐(也可以理解为,手机屏幕的左上角就移动到(x,y)坐标)。

获得屏幕分辨率大小

DisplayMetrics metric = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(metric);
int screenWidth = metric.widthPixels ;
int scrrenHeight = metric.heightPixels;
System.out.println("screenWidth * scrrenHeight --->" + screenWidth + " * " +scrrenHeight);


//过时了
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
int height = wm.getDefaultDisplay().getHeight();
int width = wm.getDefaultDisplay().getWidth();


//新的
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
Point point = new Point();
wm.getDefaultDisplay().getSize(point);
int height = point.y;
int width = point.x;


//获取屏幕高度
screenHeight = this.getWindowManager().getDefaultDisplay().getHeight();


int height = this.getContext().getResources().getDisplayMetrics().heightPixels;
int width = this.getContext().getResources().getDisplayMetrics().widthPixels;


WindowManager wm = (WindowManager) this.getContext().getResources().getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
int height = display.getHeight();
int width = display.getWidth();


小功能

打开QQ并与指定的人聊天

String url = "mqqwpa://im/chat?chat_type=wpa&uin=920800319";
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));


双击返回按钮退出

private long exitTime = 0;                     //保存上次按下返回按钮的时间
@Override //连续按下Back键退出
public void onBackPressed() {
if((System.currentTimeMillis()-exitTime) > 2000){                    //间隔大于2000毫秒 == 2秒
Toast.makeText(getApplicationContext(), "再按一次退出程序", 0).show();
exitTime = System.currentTimeMillis();       //System.currentTimeMillis()获取当前系统时间毫秒数
} else {
finish();                  //结束Activity
}
}


private long exitTime = 0;                     //保存上次按下返回按钮的时间
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {     //需要获得硬件上的按键响应  通过计算按键时间差实现
if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){    //按下返回按钮
if((System.currentTimeMillis()-exitTime) > 2000){                    //间隔大于2000毫秒 == 2秒
Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();       //System.currentTimeMillis()获取当前系统时间毫秒数
} else {
finish();                  //结束Activity
System.exit(0);      //退出程序
}
return true;
}
return super.onKeyDown(keyCode, event);
}


版本信息

获取当前程序版本名

public static String getAppVersionName(Context context) {
String versionName = "";
try {
// ---get the package info---
PackageManager pm = context.getPackageManager();
PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0);
versionName = pi.versionName;
versioncode = pi.versionCode;
if (versionName == null || versionName.length() <= 0) {
return "";
}
} catch (Exception e) {
Log.e("VersionInfo", "Exception", e);
}
return versionName;
}


获取当前系统的版本号

textView.setText("Product Model: " + android.os.Build.MODEL + ","
+ android.os.Build.VERSION.SDK + ","
+ android.os.Build.VERSION.RELEASE);


获取当前系统的android版本号

int currentapiVersion=android.os.Build.VERSION.SDK_INT;


光标事件

//etNumber = (EditText) findViewById(R.id.et_number);
etNumber.setOnFocusChangeListener(new OnFocusChangeListener() {          //光标事件
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {                                                         //光标在控件
//主要用于输入帐号时自动输入已保存的密码
}else {                                                                      //当光标离开时
String qq = etNumber.getText().toString();
String pwd = map.get(qq);
etPassword.setText(pwd);
}}});


etNumber.setOnFocusChangeListener(new OnFocusChangeListener() {  //光标事件

@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) { //光标在控件

}else { //当光标离开时
String qq = etNumber.getText().toString();
//查询
SQLiteDatabase sqLiteDatabase = QQsj.getReadableDatabase();//获取数据库
Cursor cursor = sqLiteDatabase.rawQuery("select Password from student where num = " + qq,null);
if (cursor != null) {
int pwd = cursor.getInt(0);
etPassword.setText(pwd);
}
sqLiteDatabase.close();
}


移动屏幕

public voidscrollTo(int x, int y)

它表示移动到视图的那个坐标点。哪个视图调用这个方法,那么这个视图的(x,y)点就与手机屏幕的左上角对齐(也可以理解为,手机屏幕的左上角就移动到(x,y)坐标)。

获得屏幕分辨率大小

DisplayMetrics metric = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(metric);
int screenWidth = metric.widthPixels ;
int scrrenHeight = metric.heightPixels;
System.out.println("screenWidth * scrrenHeight --->" + screenWidth + " * " +scrrenHeight);


//过时了
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
int height = wm.getDefaultDisplay().getHeight();
int width = wm.getDefaultDisplay().getWidt
c446
h();


//新的
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
Point point = new Point();
wm.getDefaultDisplay().getSize(point);
int height = point.y;
int width = point.x;


//获取屏幕高度
screenHeight = this.getWindowManager().getDefaultDisplay().getHeight();


int height = this.getContext().getResources().getDisplayMetrics().heightPixels;
int width = this.getContext().getResources().getDisplayMetrics().widthPixels;


WindowManager wm = (WindowManager) this.getContext().getResources().getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
int height = display.getHeight();
int width = display.getWidth();


正则表达式

应用

String.matches()

(就是调用Pattern类的一个已封装方法)

String a = "137";
boolean pd = a.matches("^1[0-9]{3}"); //匹配则返回True


if(value.matches(“…”)) 则正确

Pattern类

//例 手机号码验证
Pattern p = Pattern.compile("^((13[0-9])|(15[^4,//D])|(18[0,5-9]))//d{8}$");
Matcher m = p.matcher(value);
return m.matches();


//例 邮箱验证
public static boolean isEmail(String strEmail) {
String strPattern = "^[a-zA-Z][\\w\\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9]\\.[a-zA-Z][a-zA-Z\\.]*[a-zA-Z]$";
Pattern p = Pattern.compile(strPattern);
Matcher m = p.matcher(strEmail);
return m.matches();
}


一些正则

* A开头 ^A\\w{1,}
* 邮箱格式 (^[w,W]{3}\\.)?.+@.+\\..+
* 手机号码格式 (^+\\d+)?^1[3|4|5|7|8|9][0-9]\\d{8}$
* IP地址格式 (((2[0-4]\\d)|(25[0-6])|(1\\d{2})|(\\d{1,2}))\\.){3}((2[0-4]\\d)|(25[0-6])|(1\\d{2})|(\\d{1,2}))

-------------------------------------------------------------------------------------------------------------------------------

####字符属性
| 字符 | 属性 |
| ------------- | -----|
| ^ | 开始的位置 |
| . | 匹配任意一个字符 |
| \d | 匹配数字,等价[0-9] |
| \D | 非匹配数字,等价[^0-9] |
| [a-z] | 允许的字符26个小写字母  |
| [A-Za-z] | 允许的字符26个大小写字母  |
| {n} | 几个(o{2}:两个oo) |
| {5,7} | 5~7个字符 |
| {5,} | 最少5个字符 最多无限 |
| + | 等价于{1,} |
| \w | Unicode字符集所有字符 |

<br>
*******************************************************************************************************************************
<br>

###String处理

-------------------------------------------------------------------------------------------------------------------------------

####切割字符串


String s = “pomie##123”;

String[] splits = s.split(“##”); //根据##切割字符串

//splits[0] = “pomie”;

//splits[0] = “123”;

-------------------------------------------------------------------------------------------------------------------------------

####assertEquals 对比函数


if( TextUtils.isEmpty(string)) //检测string是否为空

Toast.makeText(this, “What are you doing?”,Toast.LENGTH_LONG ).show();

<br>
*******************************************************************************************************************************
<br>

###容器

-------------------------------------------------------------------------------------------------------------------------------

####ArrayList


private ArrayList arr = new ArrayList();

arr.add(x);

arr.remove(pot);

-------------------------------------------------------------------------------------------------------------------------------

####Map


Map

**也可以这样:**


map = (Map

#

#

#

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qq 退出 版本 光标 事件