别了1007D

明天是光棍节,也是北京四个月实训最后一天。今天是离开1007D的第一天,虽然好多天1007D都没一个人,但我还是从今天算起吧。现在由浩忍来讲诉我们1007D的故事吧。

第一天,7月12号,我就迟到了。因为人多,没位了,找了个凳就坐了。我这个神人就以不一样的方式出场了。当然还有一个让神颤抖的人来出场,那就是我们的Great Gary 。这个是一个非常非常帅的锅,很帅吧,我已经找不到人类语言来形容,所以我决定找火星火来形容。Gary 姓郭,30出头,蛋痛的叫他郭郭,装嫩的叫他老郭。1007D著名讲师,兼修电脑的。无所不能无所不会。目前的梦想:等死。(常说“人到了我这个境界,无所求了,只有等死了”),性格 成熟过期。爱好“做梦跟人打架”,与我们玩三国杀,“打击胡进灰”,“BS”我们。

就这样19个人加一个不是人的人聚集成一个集体。个人是独立的,当这个集体是不存在的时候,个人是不会消失的。他们的关系是聚集关系,不像老郭跟他媳妇,组成一个家庭,离了或不在,老公老婆这两就不存在了。。哇哇,被老郭看到会被P了的。每天上课只要有“胡进灰”在课堂是欢笑不断,老胡就不介绍了,大家都知道。回家回来后,老郭走了。我决定带邻大家向东南膜拜,回到南昌的时候向东膜拜,以示感谢。好像到现在都没带领过大家,大家都很忙忙,不像我天天打酱油。

发现写起真的很长,所以决定写短点,以方便大家阅读。十九人中大多都是东华理工的,显示这名太那不出手了,去面试不是问你是不是华东理工的就是看成东华大学,我的娘啊,
BS一下要这名的校长。再话学校的200块还没给我们发呢,再BS之。

实训结束了,阿良去了广州,老七、小明去了深圳,我尾随来到了北京。虽然这些时间都不给你们打电话,只想自己一个人好好考虑下以后的生活。自己现在没好定,所以也不想跟你们添乱。所以你们好好加油吧,如果能一起,就按以前想的。

再吼下,虽然我是没心没肝没肺的人,但一直想念着你们。不管你们怎么样了,都将是美好回忆的一部分,也是生命中的一小分子。走了,88

android面试记录

abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?

答为:都不能

以下是我google过来的,自己记录下

1、abstract与static

     (what)

     abstract:用来声明抽象方法,抽象方法没有方法体,不能被直接调用,必须在子类overriding后才能使用

     static:用来声明静态方法,静态方法可以被类及其对象调用

     (how)

     static与abstract不能同时使用

     (why)

      用static声明方法表明这个方法在不生成类的实例时可直接被类调用,而abstract方法不能被调用,两者矛盾。

2、abstract与native

     (what)

     native:用来声明本地方法,该方法的实现由非java 语言实现,比如C。一般用于java与外环境交互,或与操作系统交互

     (how)

      native 可以与所有其它的java 标识符连用,但是abstract除外。     

      (why)

      因为native 暗示这些方法是有实现体的,只不过这些实现体

      是非java 的,但是abstract却显然的指明这些方法无实现体。

3、abstract与synchronized

      (what)

      synchronized:用于防止多个线程同时调用一个对象的该方法,与static连用可防止多个线程同时调用一个类的该方法

      (how)

      abstract与synchronized不能同时使用

      (why)

       从synchronized的功能也可以看出,用synchronized的前提是该方法可以被直接调用,显然和abstract不能连用

 

 

一家三口三个姓氏将出现

本人的姓氏之争已久,自中华人民共和国开国以来,改革开放起,吾之族人被“改姓”。虽有长征功臣于长沙养老,姓本姓也。奈何。。。。

吾穰氏之后,力争本姓,以安吾之心。由此,三口之家三姓氏而生。

好了,前面乱掰了下。回到问题,是大家想问的问题?

第一,我现在的姓氏不是本姓,为后来改的姓。小学到初中 我用过四个姓氏。为什么会这样,主要是因为区域文化啊,虽被改姓,本家读法不变,但外人读音会只读字音,不知原由,所以好多次都说明我姓啥。

第二,第五次人口谱查,我们本姓加现姓有将近2万人(可能还会多,也有改为它姓的),群里人一直要改回原姓氏,湖南方面军(就这样叫嘛)也来到我们村,与我方面军讨论改姓之事宜。最后大家都说要改,其实我早想改了,为什么现在不改呢,一来毕业证上都是那姓,改起来太不方便了。所以下一代改起。。

第三,我家那位一定不会跟我同一个姓氏的。为什么?全国才多少人啊。。非要找个同姓的不可吗??不是不行,也要有吧(有看得上的,有感情的)。

这么一来,孩子一个,老爸一个,他老妈一个。嘿嘿,以后有点玩了。。孩子问题也会很多的,怎么你家三个姓啊,老师问,同学问,问题很多(我从小也是这样的,现在还是这样),做为我家的孩子不容易啊。要问他老妈姓啥,不告诉你们,有也不告诉你,别说没有啦。。打住。。。

图个无聊发发,等等孩子他自己来看,会觉得他老爸太有远见了(我躲,小心被P)。

android 无线点餐系统

这个程序写了快一周了(结算部分没完,因为要离开这里些时间),但真正用了没多少时间,大多时间都在上课,忙别的。每次我想好好写,不是叫我去面试,就是叫我去开会。一个鸟蛋,烦死了。明天准备回学校,回南昌走走,看看。正好好好休息,然后回北京找工作。北京的学习也快要结束了,找工作就要开始。今天去面试,直接就是裸试,人事面完,技术主管面完,最后老总也出来了面了。也许只是一家新开的公司吧,技术说我技术还不错,基础还不是很牢。也许没有准备过面试,正好回去好好把基础看下,准备面试。好了,看我们的系统吧,直接上了。

 

 

 

 

 

 

 

Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f050013}的问题

先来看下这个问题吧

10-29 04:11:46.945: WARN/Resources(541): Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f050013}

查了下英文的资料

- What happened.
EditText converted default value as it would be an numeric, and omits leading zero. If you use a non-numeric value it won't be converted. If you type directly in input field (not default value) then the zero is not lost.
- What you think the correct behavior should be.
textPassword and textVisiblePassword input types must not consider default value as numeric in any conditions. This is probably should apply to numeric input types only.
 

主要问题是,EditText的值被设定为默认只接爱数值,如果是非数值就会出现不能转换

为什么我出现了这样的问题?

是因为我在TextVIEW中的Text属性设置为EditText的ID号,出现转换警告,在这想告诉大家的是要认真设置好XML中的每个属性,更不要同名。

android 会员买卖系统

这是我第一个作品,用了9天时间写完,项目不大,因为没真正好好的去学习android 。所以写起来比较慢,在接下来的学习中,会加快提高我的技术的。

如果大家有什么好东西,需要我用android 完成的,我也会努力去写一个。一来提高技术,二来交下朋友。朋友满天下,才是道理。看下我的东东吧

 

 

Android 中数据库查询方法 query()

在使用android sqlite 的时候  经常对query() 方法不太记得,网上找了些东西

Android 中涉及数据库查询的地方一般都会有一个 query() 方法,而这些 query 中有大都(全部?)会有一个参数 selectionArgs,比如下面这个 android.database.sqlite.SQLiteDatabase.query():

  • public Cursor query (String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy)  

selection 参数很好理解,就是 SQL 语句中 WHERE 后面的部分,即过滤条件, 比如可以为 id=3 AND name='Kevin Yuan' 表示只返回满足 id 为 3 且 name 为 "Kevin Yuan" 的记录。

    再实际项目中像上面那样简单的“静态”的 selection 并不多见,更多的情况下要在运行时动态生成这个字符串,比如

view plaincopy to clipboardprint?
public doQuery(long id, final String name) {  
  mDb.query("some_table", // table name   
        null, // columns  
        "id=" + id + " AND name='" + name + "'", // selection  
         //...... 更多参数省略  
  );  

public doQuery(long id, final String name) {
  mDb.query("some_table", // table name
        null, // columns
        "id=" + id + " AND name='" + name + "'", // selection
         //...... 更多参数省略
  );
}

在这种情况下就要考虑一个字符转义的问题,比如如果在上面代码中传进来的 name 参数的内容里面有单引号('),就会引发一个 "SQLiteException syntax error .... "。

     手工处理转义的话,也不麻烦,就是 String.replace() 调用而已。但是 Android SDK 为我们准备了 selectionArgs 来专门处理这种问题:

view plaincopy to clipboardprint?
public void doQuery(long id, final String name) {  
  mDb.query("some_table", // table name   
        null, // columns  
        "id=" + id + " AND name=?", // selection  
        new String[] {name}, //selectionArgs  
         //...... 更多参数省略  
  );  
  // ...... 更多代码  

public void doQuery(long id, final String name) {
  mDb.query("some_table", // table name
        null, // columns
        "id=" + id + " AND name=?", // selection
        new String[] {name}, //selectionArgs
         //...... 更多参数省略
  );
  // ...... 更多代码
}

也就是说我们在 selection 中需要嵌入字符串的地方用 ? 代替,然后在 selectionArgs 中依次提供各个用于替换的值就可以了。在 query() 执行时会对 selectionArgs 中的字符串正确转义并替换到对应的 ? 处以构成完整的 selection 字符串。 有点像 String.format()。

    不过需要注意的是 ? 并不是“万金油”,只能用在原本应该是字符串出现的地方。比如下面的用法是错误的:

view plaincopy to clipboardprint?
public void doQuery(long id, final String name) {  
  mDb.query("some_table", // table name   
        null, // columns  
        "? = " + id + " AND name=?", // selection XXXX 错误!? 不能用来替换字段名  
        new String[]{"id", name}, //selectionArgs  
      //...... 更多参数省略  
  );  
  // ...... 更多代码  

andorid column ‘_id’ does not exist错误的解决

这个问题搞了我晚上好几个小时,最后查了下网上,才找到问题。

关于这一部分,必须注意sqlite的主键命名,由于simpleCursorAdapter的方法只识别_id,所以,当你用到sqlite的simpleCursorAdapter时,必须把数据表的主键命名为_id。否则就会出现java.lang.IllegalArgumentException: column '_id' does not exist错误。

android 学习笔记

android模拟器(simulator)把它自己作为了localhost,也就是说,代码中使用localhost或者127.0.0.1来访问,都是访问模拟器自己!这是不行的!

如果你想在模拟器simulator上面访问你的电脑,那么就使用android内置的IP 10.0.2.2 吧,  10.0.2.2 是模拟器设置的特定ip,是你的电脑的别名alias

记住,在模拟器上用10.0.2.2访问你的电脑本机

 

android http post  实现

 

  public void onClick(View v) {
    dopost(txt.getText().toString());
    
   }
  });
    }

 private void dopost(String val){
     //封装数据
     Map<String, String> parmas = new HashMap<String, String>();
     parmas.put("name", val);
    
     DefaultHttpClient client = new DefaultHttpClient();//http客户端
     HttpPost httpPost = new HttpPost("http://mhycoe.com/test/post.php");
    
     ArrayList<BasicNameValuePair> pairs = new ArrayList<BasicNameValuePair>();
     if(parmas != null){
         Set<String> keys = parmas.keySet();
         for(Iterator<String> i = keys.iterator(); i.hasNext();) {
              String key = (String)i.next();
              pairs.add(new BasicNameValuePair(key, parmas.get(key)));
         }
    }
    
  try {
   UrlEncodedFormEntity p_entity = new UrlEncodedFormEntity(pairs, "utf-8");
         /*
          *  将POST数据放入HTTP请求
          */
         httpPost.setEntity(p_entity);
         /*
          *  发出实际的HTTP POST请求
           */
         HttpResponse response = client.execute(httpPost);
         HttpEntity entity = response.getEntity();
         InputStream content = entity.getContent();
   String returnConnection = convertStreamToString(content);
         show.setText(returnConnection);
  } catch (IllegalStateException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
    
 }

  private String convertStreamToString(InputStream is) {
   BufferedReader reader = new BufferedReader(new InputStreamReader(is));
         StringBuilder sb = new StringBuilder();
         String line = null;
         try {
              while ((line = reader.readLine()) != null) {
                   sb.append(line);
              }
         } catch (IOException e) {
              e.printStackTrace();
         } finally {
              try {
                   is.close();
              } catch (IOException e) {
                   e.printStackTrace();
              }
         }
         return sb.toString();
 }
}

回家迷途

又一次出远门,这次走的方向走反了,走北方去了。所以特别想家,9月29号晚坐上回南昌的火车,从北京返家。经过12个小时不合眼的火车硬座,差点肛裂了。。下次一定给我买张卧的,再送她一张。也许这也只能想想啦,我还是一直这么穷。。北漂的生活虽说已经剥落了我梦的外皮,但现实已经入我骨了。下火车之后就票也没买到,看到回家无望了,只好去学校走走,在学校的好好走了好多次。看到了好些同学,他们考公务员的考公务员的,考研的考研;像我这样子的都一起出去实习了。每一个同学都说要请我吃饭,都说好久没见了。中午我请他们一起吃了个饭。下午在床上 几秒钟就睡着了,这次是很快睡着了,一次深度睡眠。好久没睡个好觉了,很幸福的睡觉是我现在的梦想。晚上寝友请我吃饭,吃完后我一个人在学校里面自己走走,接着走第5圈。在路上又遇上了好几个同学,陪他们聊天,之后他们请我吃饭了,完他们又陪我走走,之后又撞上同学,他们又请我吃饭。然后就聊了聊他们在公司的故事,蛮好玩的。吃的差不多,又走了走,之后又撞到同学了,这次考研的看书回来,就一次聊着回寝室了。

寝室没床,就去同学那睡了,几天没睡好,拿着书睡着了,这次真是睡的很好。接第二天就没怎么爽,火车站不让进,我没票,人很多。打电话都不通,差点都要走丢,其实我们都找不到对方了。后来没办法,等等了好久发短信才找到对方的。去拦汽车也没拦到,为了1号能到安福,所以我晚上也去拦汽车回家,最后被我拦到了。晚10点半到安福,哈哈。。。回家真好。。。虽然一路杯具着。。