Android杂知识点

(1)java中HashMap如何根据key获得value?

HashMap map = new HashMap();
map.put(1,2);
map.get(1); //根据key得到value 2

(2)Integer.valueof(String)

例如: String str = "1"; Integer i = Integer.valueof(str); 这样其实是返回了一个Integer对象。我想知道:(1)i和"1"之间还有没有什么联系?(2)在Integer.valueof(str)执行过程是怎么样的?要详细一点。
问题1:没有关系了,只是把String型的"1"转化为了Integer型的1
问题2:(1)调用Integer类中的静态方法valueOf(String)(2)valueOf方法将传入的参数String转化为int型值(3)返回该值,如果String并不是纯粹由数字构成即无法转化为数字,则抛出NumberFormatException..
PS:把String 型转换为Int型, Integer.valueOf()把String 型转换为Integer对象。大概知道一点了,就是说Integer.valueOf(S)是针对包装类来说的,而Integer.parseInt(s) 是针对变量而言.

(3) ContentValues 和HashTable类似都是一种存储的机制 但是两者最大的区别就在于,contenvalues只能存储基本类型的数据,像string,int之类的,不能存储对象这种东西,而HashTable却可以存储对象。

      在忘数据库中插入数据的时候,首先应该有一个ContentValues的对象所以:

ContentValues initialValues = new ContentValues();

initialValues.put(key,values);

SQLiteDataBase sdb ;

sdb.insert(database_name,null,initialValues);

插入成功就返回记录的id否则返回-1;

(4) Android里面i.getStringExtra什么作用 (取得另一个Activity 传送的参数)

Intent 功能太强大了,比较常用的就是Activity (Service)之间的数据传递。举个简单例子,在当前Activity1使用startActvity(intent)或者startActivityForResult(intent, code)方法跳转到另一个Activity2之前,如果要传递某些String类型数据给Activity2,则会执行intent.putExtra(String str, String Key),将String数据打包到Intent中,并给它一个Key标识。在Activity2当中,getIntent()方法获得这个intent,然后再getStringExtra(Key),就可以获得你之前打包的那个数据了。这种机制非常简单,也比较好用。
http://android.tgbus.com/Android/tutorial/201104/349328.shtml
   //用intent.putExtra(String name, String value);来传递参数。
    intent.putExtra("one", num1);
    intent.putExtra("two", num2);
*******************************************************************
 // 用intent1.getStringExtra()来得到上一个ACTIVITY发过来的字符串。
        String one = intent1.getStringExtra("one");  
        String two = intent1.getStringExtra("two");

(5)startActivityForResult与startActivity的不同之处在于:

如果想在Activity中得到新打开Activity 关闭后返回的数据,需要使用系统提供的startActivityForResult(Intent intent, int requestCode)方法打开新的Activity,新的Activity 关闭后会向前面的Activity传回数据,为了得到传回的数据,必须在前面的Activity中重写onActivityResult(int requestCode, int resultCode, Intent data)方法。
1、startActivity( ) 
仅仅是跳转到目标页面,若是想跳回当前页面,则必须再使用一次startActivity( )。
2、startActivityForResult( ) 
可以一次性完成这项任务,当程序执行到这段代码的时候,假若从T1Activity跳转到下一个Text2Activity,而当这个Text2Activity调用了finish()方法以后,程序会自动跳转回T1Activity,并调用前一个T1Activity中的onActivityResult( )方法。 



(6)gson.toJson(userBusinessInfo),其中 userBusinessInfo为一对象。

http://blog.csdn.net/lk_blog/article/details/7685169                       Gson----对象-to-String
http://blog.csdn.net/lk_blog/article/details/7685210                       Gson----Map-to-String
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。

Object Examples //自定义类   --------------------------------- Gson----对象-to-String

class BagOfPrimitives {
  private int value1 = 1;
  private String value2 = "abc";
  private transient int value3 = 3;
  BagOfPrimitives() {
    // no-args constructor
  }
}

(Serialization)
BagOfPrimitives obj = new BagOfPrimitives();
Gson   gson   = new   Gson ();
String json = gson.toJson(obj); 
==> json is {"value1":1,"value2":"abc"}   //注意 这里没有出现   value3  = 3   
java 关键字transient
 

如果用transient声明一个实例变量,当对象存储时,它的值不需要维持
Gson 也就不会序列化他

Map的存储结构式Key/Value形式,Key 和 Value可以是普通类型,也可以是自己写的JavaBean(本文),还可以是带有泛型的List(下一篇博客).本例中您要重点看如何将Json转回为普通JavaBean对象时TypeToken的定义.
  1. Map<Point, String> map1 = new LinkedHashMap<Point, String>();// 使用LinkedHashMap将结果按先进先出顺序排列  
  2.         map1.put(new Point(56), "a");  
  3.         map1.put(new Point(88), "b");  
  4.         String s = gson.toJson(map1);  
  5.         System.out.println(s);// 结果:[[{"x":5,"y":6},"a"],[{"x":8,"y":8},"b"]]  


  1.         Map<Point, String> retMap = gson.fromJson(s,  
  2.                 new TypeToken<Map<Point, String>>() {  
  3.                 }.getType());  
  4.         for (Point p : retMap.keySet()) {  
  5.             System.out.println("key:" + p + " values:" + retMap.get(p));  
  6.         }  
  7.         System.out.println(retMap);  
       // 结果: key:Point [x=5, y=6] values:a  
               key:Point [x=8, y=8] values:b  
               {Point [x=5, y=6]=a, Point [x=8, y=8]=b}  



  1.  Map<String, Point> map2 = new LinkedHashMap<String, Point>();  
  2.         map2.put("a"new Point(34));  
  3.         map2.put("b"new Point(56));  
  4.         String s2 = gson.toJson(map2);  
  5.         System.out.println(s2);  
  6.   
  7.         Map<String, Point> retMap2 = gson.fromJson(s2,  
  8.                 new TypeToken<Map<String, Point>>() {  
  9.                 }.getType());  
  10.         for (String key : retMap2.keySet()) {  
  11.             System.out.println("key:" + key + " values:" + retMap2.get(key));  
  12.         }  
 // 结果: {"a":{"x":3,"y":4},"b":{"x":5,"y":6}}  
         key:a values:Point [x=3, y=4]  
         key:b values:Point [x=5, y=6]




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值