当前位置:  编程技术>移动开发
本页文章导读:
    ▪JAVA String.format 步骤使用介绍        JAVA String.format 方法使用介绍 1.对整数进行格式化:%[index$][标识][最小宽度]转换方式        我们可以看到,格式化字符串由4部分组成,其中%[index$]的含义我们上面已经讲过,[最小宽度].........
    ▪ [转]将cursor转换成随便类型VO_dashlayout初步        [转]将cursor转换成任意类型VO__dashlayout初步 原帖地址:http://blog.csdn.net/Oo8_8oO/article/details/7003162package com.sql2vo.helper; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.util.HashMa.........
    ▪ Intent中的四个主要属性——Action、Data、Category、Extras       Intent中的四个重要属性——Action、Data、Category、Extras http://www.cnblogs.com/wisekingokok/archive/2011/08/22/2149847.html ......

[1]JAVA String.format 步骤使用介绍
    来源: 互联网  发布时间: 2014-02-18
JAVA String.format 方法使用介绍

1.对整数进行格式化:%[index$][标识][最小宽度]转换方式
        我们可以看到,格式化字符串由4部分组成,其中%[index$]的含义我们上面已经讲过,[最小宽度]的含义也很好理解,就是最终该整数转化的字符串最少包含多少位数字。我们来看看剩下2个部分的含义吧:

标识: 
'-'    在最小宽度内左对齐,不可以与“用0填充”同时使用
'#'    只适用于8进制和16进制,8进制时在结果前面增加一个0,16进制时在结果前面增加0x
'+'    结果总是包括一个符号(一般情况下只适用于10进制,若对象为BigInteger才可以用于8进制和16进制)
'  '    正值前加空格,负值前加负号(一般情况下只适用于10进制,若对象为BigInteger才可以用于8进制和16进制)
'0'    结果将用零来填充
','    只适用于10进制,每3位数字之间用“,”分隔
'('    若参数是负数,则结果中不添加负号而是用圆括号把数字括起来(同‘+’具有同样的限制)

转换方式:
d-十进制   o-八进制   x或X-十六进制

        上面的说明过于枯燥,我们来看几个具体的例子。需要特别注意的一点是:大部分标识字符可以同时使用。

        System.out.println(String.format("%1$,09d", -3123));
        System.out.println(String.format("%1$9d", -31));
        System.out.println(String.format("%1$-9d", -31));
        System.out.println(String.format("%1$(9d", -31));
        System.out.println(String.format("%1$#9x", 5689));

//结果为:
//-0003,123
//      -31
//-31      
//     (31)
//   0x1639



2.对浮点数进行格式化:%[index$][标识][最少宽度][.精度]转换方式
        我们可以看到,浮点数的转换多了一个“精度”选项,可以控制小数点后面的位数。

标识: 
'-'    在最小宽度内左对齐,不可以与“用0填充”同时使用
'+'    结果总是包括一个符号
'  '    正值前加空格,负值前加负号
'0'    结果将用零来填充
','    每3位数字之间用“,”分隔(只适用于fgG的转换)
'('    若参数是负数,则结果中不添加负号而是用圆括号把数字括起来(只适用于eEfgG的转换)

转换方式:
'e', 'E'  --  结果被格式化为用计算机科学记数法表示的十进制数
'f'          --  结果被格式化为十进制普通表示方式
'g', 'G'    --  根据具体情况,自动选择用普通表示方式还是科学计数法方式
'a', 'A'    --   结果被格式化为带有效位数和指数的十六进制浮点数



3.对字符进行格式化:
        对字符进行格式化是非常简单的,c表示字符,标识中'-'表示左对齐,其他就没什么了。

4.对百分比符号进行格式化:
        看了上面的说明,大家会发现百分比符号“%”是特殊格式的一个前缀。那么我们要输入一个百分比符号该怎么办呢?肯定是需要转义字符的,但是要注意的是,在这里转义字符不是“\”,而是“%”。换句话说,下面这条语句可以输出一个“12%”:
System.out.println(String.format("%1$d%%", 12));

5.取得平台独立的行分隔符:
        System.getProperty("line.separator")可以取得平台独立的行分隔符,但是用在format中间未免显得过于烦琐了。于是format函数自带了一个平台独立的行分隔符那就是String.format("%n")。

6.对日期类型进行格式化:
         以下日期和时间转换的后缀字符是为 't' 和 'T' 转换定义的。这些类型相似于但不完全等同于那些由 GNU date 和 POSIX strftime(3c) 定义的类型。提供其他转换类型是为了访问特定于 Java 的功能(如将 'L' 用作秒中的毫秒)。

以下转换字符用来格式化时间:
'H'     24 小时制的小时,被格式化为必要时带前导零的两位数,即 00 - 23。
'I'     12 小时制的小时,被格式化为必要时带前导零的两位数,即 01 - 12。
'k'     24 小时制的小时,即 0 - 23。
'l'     12 小时制的小时,即 1 - 12。
'M'     小时中的分钟,被格式化为必要时带前导零的两位数,即 00 - 59。
'S'     分钟中的秒,被格式化为必要时带前导零的两位数,即 00 - 60 ("60" 是支持闰秒所需的一个特殊值)。
'L'     秒中的毫秒,被格式化为必要时带前导零的三位数,即 000 - 999。
'N'     秒中的毫微秒,被格式化为必要时带前导零的九位数,即 000000000 - 999999999。
'p'     特定于语言环境的 上午或下午 标记以小写形式表示,例如 "am" 或 "pm"。使用转换前缀 'T' 可以强行将此输出转换为大写形式。
'z'     相对于 GMT 的 RFC 822 格式的数字时区偏移量,例如 -0800。
'Z'     表示时区缩写形式的字符串。Formatter 的语言环境将取代参数的语言环境(如果有)。
's'     自协调世界时 (UTC) 1970 年 1 月 1 日 00:00:00 至现在所经过的秒数,即 Long.MIN_VALUE/1000 与 Long.MAX_VALUE/1000 之间的差值。
'Q'     自协调世界时 (UTC) 1970 年 1 月 1 日 00:00:00 至现在所经过的毫秒数,即 Long.MIN_VALUE 与 Long.MAX_VALUE 之间的差值。

以下转换字符用来格式化日期:
'B'     特定于语言环境的月份全称,例如 "January" 和 "February"。
'b'     特定于语言环境的月份简称,例如 "Jan" 和 "Feb"。
'h'     与 'b' 相同。
'A'     特定于语言环境的星期几全称,例如 "Sunday" 和 "Monday"
'a'     特定于语言环境的星期几简称,例如 "Sun" 和 "Mon"
'C'     除以 100 的四位数表示的年份,被格式化为必要时带前导零的两位数,即 00 - 99
'Y'     年份,被格式化为必要时带前导零的四位数(至少),例如,0092 等于格里高利历的 92 CE。
'y'     年份的最后两位数,被格式化为必要时带前导零的两位数,即 00 - 99。
'j'     一年中的天数,被格式化为必要时带前导零的三位数,例如,对于格里高利历是 001 - 366。
'm'     月份,被格式化为必要时带前导零的两位数,即 01 - 13。
'd'     一个月中的天数,被格式化为必要时带前导零两位数,即 01 - 31
'e'     一个月中的天数,被格式化为两位数,即 1 - 31。

以下转换字符用于格式化常见的日期/时间组合。
'R'     24 小时制的时间,被格式化为 "%tH:%tM"
'T'     24 小时制的时间,被格式化为 "%tH:%tM:%tS"。
'r'     12 小时制的时间,被格式化为 "%tI:%tM:%tS %Tp"。上午或下午标记 ('%Tp') 的位置可能与语言环境有关。
'D'     日期,被格式化为 "%tm/%td/%ty"。
'F'     ISO 8601 格式的完整日期,被格式化为 "%tY-%tm-%td"。
'c'     日期和时间,被格式化为 "%ta %tb %td %tT %tZ %tY",例如 "Sun Jul 20 16:17:00 EDT 1969"。


    
[2] [转]将cursor转换成随便类型VO_dashlayout初步
    来源: 互联网  发布时间: 2014-02-18
[转]将cursor转换成任意类型VO__dashlayout初步
原帖地址:
http://blog.csdn.net/Oo8_8oO/article/details/7003162

package com.sql2vo.helper;
import java.lang.reflect.Constructor;  
import java.lang.reflect.Field;  
import java.util.HashMap;  
import java.util.LinkedList;  
import java.util.List;  
import java.util.Map;  
  
import android.database.Cursor;  
import android.database.sqlite.SQLiteDatabase;  
  
/** 
 * 通过SQL语句查询出结果并封闭到VO里 
 *  
 * @author dengzer@gmail.com 
 * @version 创建时间:2011-10-28 下午05:27:39 
 */  
public class HappySQL {  
  
    /** 
     * 通过SQL语句获得对应的VO。注意:Cursor的字段名或者别名一定要和VO的成员名一样 
     *  
     * @param db 
     * @param sql 
     * @param clazz vo class
     * @return 
     */  
    @SuppressWarnings("rawtypes")  
    public static Object sql2VO(SQLiteDatabase db, String sql, Class clazz) {  
        Cursor c = db.rawQuery(sql, null);  
        return cursor2VO(c, clazz);  
    }  
  
    /** 
     * 通过SQL语句获得对应的VO。注意:Cursor的字段名或者别名一定要和VO的成员名一样 
     *  
     * @param db 
     * @param sql 
     * @param selectionArgs 
     * @param clazz 
     * @return 
     */  
    @SuppressWarnings("rawtypes")  
    public static Object sql2VO(SQLiteDatabase db, String sql,  
            String[] selectionArgs, Class clazz) {  
        Cursor c = db.rawQuery(sql, selectionArgs);  
        return cursor2VO(c, clazz);  
    }  
  
    /** 
     * 通过SQL语句获得对应的VO的List。注意:Cursor的字段名或者别名一定要和VO的成员名一样 
     *  
     * @param db 
     * @param sql 
     * @param clazz 
     * @return 
     */  
    @SuppressWarnings("rawtypes")  
    public static List sql2VOList(SQLiteDatabase db, String sql, Class clazz) {  
        
    	Cursor c = db.rawQuery(sql, null);
    	
        return cursor2VOList(c, clazz);  
    }  
  
    /** 
     * 通过SQL语句获得对应的VO的List。注意:Cursor的字段名或者别名一定要和VO的成员名一样 
     *  
     * @param db 
     * @param sql 
     * @param selectionArgs 
     * @param clazz 
     * @return 
     */  
    @SuppressWarnings("rawtypes")  
    public static List sql2VOList(SQLiteDatabase db, String sql,  
            String[] selectionArgs, Class clazz) {  
        Cursor c = db.rawQuery(sql, selectionArgs);  
        return cursor2VOList(c, clazz);  
    }  
  
    /** 
     * 通过Cursor转换成对应的VO。注意:Cursor里的字段名(可用别名)必须要和VO的属性名一致 
     *  
     * @param c 
     * @param clazz 
     * @return 
     */  
    @SuppressWarnings({ "rawtypes", "unused" })  
    private static Object cursor2VO(Cursor c, Class clazz) {  
        if (c == null) {  
            return null;  
        }  
        Object obj;  
        int i = 1;  
        try {  
            c.moveToNext();  
            obj = setValues2Fields(c, clazz);  
  
            return obj;  
        } catch (Exception e) {  
            System.out.println(e);  
            System.out.println("ERROR @:cursor2VO");  
            return null;  
        } finally {  
            c.close();  
        }  
    }  
  
    /** 
     * 通过Cursor转换成对应的VO集合。注意:Cursor里的字段名(可用别名)必须要和VO的属性名一致 
     *  
     * @param c 
     * @param clazz 
     * @return 
     */  
    @SuppressWarnings({ "rawtypes", "unchecked" })  
    private static List cursor2VOList(Cursor c, Class clazz) {  
        if (c == null) {  
            return null;  
        }  
        List list = new LinkedList();  
        Object obj;  
        try {  
            while (c.moveToNext()) {  
                obj = setValues2Fields(c, clazz);
                
                list.add(obj);  
            }  
            return list;  
        } catch (Exception e) {  
            e.printStackTrace();  
            System.out.println("ERROR @:cursor2VOList");  
            return null;  
        } finally {  
            c.close();  
        }  
    }  
  
    /** 
     * 把值设置进类属性里 
     *  
     * @param columnNames 
     * @param fields 
     * @param c 
     * @param obj 
     * @throws Exception 
     */  
    @SuppressWarnings("rawtypes")  
    private static Object setValues2Fields(Cursor c, Class clazz)  
            throws Exception {  
    	
    	String[] columnNames = c.getColumnNames();// 字段数组  
    	//init a instance from the VO`s class
        Object obj = clazz.newInstance();  
        //return a field array from obj`s ALL(include private exclude inherite(from father)) field
        Field[] fields = clazz.getDeclaredFields();  
        
        for (Field _field : fields) 
        { 
        	//field`s type
            Class<? extends Object> typeClass = _field.getType();// 属性类型  
            for (int j = 0; j < columnNames.length; j++) 
            {  
                String columnName = columnNames[j];  
                typeClass = getBasicClass(typeClass);  
                //if typeclass is basic class ,package.if not,no change
                boolean isBasicType = isBasicType(typeClass);  
                
                if (isBasicType) {  
                    if (columnName.equalsIgnoreCase(_field.getName())) {// 是基本类型  
                        String _str = c.getString(c.getColumnIndex(columnName));  
                        if (_str == null) {  
                            break;  
                        }  
                        _str = _str == null ? "" : _str;
                        //if value is null,make it to ""
                        //use the constructor to init a attribute instance by the value
                        Constructor<? extends Object> cons = typeClass  
                                .getConstructor(String.class);  
                        Object attribute = cons.newInstance(_str);  
                        _field.setAccessible(true);
                        //give the obj the attr
                        _field.set(obj, attribute);  
                        break;  
                    }  
                } else {  
                    Object obj2 = setValues2Fields(c, typeClass);// 递归  
                    _field.set(obj, obj2);  
                    break;  
                }  
  
            }  
        }  
        return obj;  
    }  
  
    /** 
     * 判断是不是基本类型 
     *  
     * @param typeClass 
     * @return 
     */  
    @SuppressWarnings("rawtypes")  
    private static boolean isBasicType(Class typeClass) {  
        if (typeClass.equals(Integer.class) || typeClass.equals(Long.class)  
                || typeClass.equals(Float.class)  
                || typeClass.equals(Double.class)  
                || typeClass.equals(Boolean.class)  
                || typeClass.equals(Byte.class)  
                || typeClass.equals(Short.class)  
                || typeClass.equals(String.class)) {  
  
            return true;  
  
        } else {  
            return false;  
        }  
    }  
  
    /** 
     * 获得包装类 
     *  
     * @param typeClass 
     * @return 
     */  
    @SuppressWarnings("all")  
    public static Class<? extends Object> getBasicClass(Class typeClass) {  
        Class _class = basicMap.get(typeClass);  
        if (_class == null)  
            _class = typeClass;  
        return _class;  
    }  
  
    @SuppressWarnings("rawtypes")  
    private static Map<Class, Class> basicMap = new HashMap<Class, Class>();  
    static {  
        basicMap.put(int.class, Integer.class);  
        basicMap.put(long.class, Long.class);  
        basicMap.put(float.class, Float.class);  
        basicMap.put(double.class, Double.class);  
        basicMap.put(boolean.class, Boolean.class);  
        basicMap.put(byte.class, Byte.class);  
        basicMap.put(short.class, Short.class);  
    }  
}  


界面

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    
    <include layout="@layout/test_db"/>    
    
</LinearLayout>


Button的布局
其中style在另一个文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
    
    <LinearLayout android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:layout_width="match_parent">
        <Button 
        android:text="Button" 
        android:id="@+id/button1"
		android:layout_width="wrap_content" 
		android:layout_height="wrap_content"
		android:drawableLeft="@drawable/icon"
		
		></Button>
    </LinearLayout>
</LinearLayout>



/values/styles
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="style1">
    	<item name="android:layout_gravity">center_vertical</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:gravity">center_horizontal</item>
        <item name="android:drawablePadding">2dp</item>
        <item name="android:textSize">16dp</item>
        <item name="android:textStyle">bold</item>
        <item name="android:textColor">#ff29549f</item>
        <item name="android:background">@null</item>
    </style>
    
</resources>


效果如下
图片和button文字都是Button按钮的一部分

    
[3] Intent中的四个主要属性——Action、Data、Category、Extras
    来源: 互联网  发布时间: 2014-02-18
Intent中的四个重要属性——Action、Data、Category、Extras
http://www.cnblogs.com/wisekingokok/archive/2011/08/22/2149847.html

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
编程语言 iis7站长之家
▪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