小知识汇总

截取某个字符(不包括)的后半段
String str = "s\ziyuan";
String newStr = str.subString(str.indexOf("\\"),str.length());
去掉标题栏
requestWindowFeature(Window.FEATURE_NO_TITLE);
AutoCompleteTextView内容的监听
 /**
         * 当输入关键字变化时,动态更新建议列表
         */
        mAtvAdr.addTextChangedListener(new TextWatcher() {

            @Override
            public void afterTextChanged(Editable arg0) {

            }

            @Override
            public void beforeTextChanged(CharSequence arg0, int arg1,
                                          int arg2, int arg3) {

            }

            @Override
            public void onTextChanged(CharSequence cs, int arg1, int arg2,
                                      int arg3) {
                if (cs.length() <= 0) {
                    return;
                }
//                String city = ((EditText) findViewById(R.id.city)).getText()
//                        .toString();
                /**
                 * 使用建议搜索服务获取建议列表,结果在onSuggestionResult()中更新
                 */
                mSuggestionSearch
                        .requestSuggestion((new SuggestionSearchOption())
                                .keyword(cs.toString()).city(city));
            }
        });
实现这个接口可以监听控件获取焦点的情况并处理
View.OnFocusChangeListener
@Override
public void onFocusChange(View v, boolean hasFocus) {
    if (hasFocus){
        ivFace.setVisibility(View.VISIBLE);
    }else {
        ivFace.setVisibility(View.INVISIBLE);
    }
}
控制系统软键盘的代码
ivFace.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (isFace){
            gvFace.setVisibility(View.VISIBLE);
            //关闭软键盘
            ((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).hideSoftInputFromWindow
                    (AddSaysayActivity.this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
            ivFace.setImageResource(R.drawable.chatting_setmode_keyboard_btn_normal);
            isFace=false;
        }else {
            gvFace.setVisibility(View.INVISIBLE);
            //更改软键盘状态,开启键盘
            ((InputMethodManager)AddSaysayActivity.this.
                    getSystemService(INPUT_METHOD_SERVICE)).toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
            ivFace.setImageResource(R.drawable.chatting_biaoqing_btn_normal);
            isFace=true;
        }
WebView加载资源Gif图,也可加载本地Gif图
webView= (WebView) findViewById(R.id.webView);
String file="file:///android_asset/test.gif";
webView.loadUrl(file);

10、android软键盘把控件往上挤的解决办法:


  键盘区域外才是屏幕的边缘,定义布局文件时使用:android:gravity="bottom"的话就会被挤到上部!

  解决办法:

  在此工程的androidMainfest.xml文件中对应的Activity中写入 android:windowSoftInputMode="adjustPan"

  或者在配置文件中把布局文件的大小写死!

12.7
Uri
Bitmap photo = BitmapFactory.decodeFile(getIntent().getStringExtra("path"));
uri.getPath()   
Uri.parse("")
Uri.fromFile(file)

一些工具方法:
//获取时间差
private String diff(String str1, String str2) {
    String final_dif;
    Date d1 = null;
    Date d2 = null;
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    try {
        d1 = sdf.parse(str1);
        d2 = sdf.parse(str2);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    Long diff = null;   //两时间差,精确到毫秒
    if (d2 != null) {
        diff = d2.getTime() - d1.getTime();
    }
    Long day = diff / (1000 * 60 * 60 * 24);          //以天数为单位取整
    Long hour = (diff / (60 * 60 * 1000) - day * 24);             //以小时为单位取整
    Long min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);    //以分钟为单位取整
    Long secone = (diff / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);
    if (day != 0) {
        final_dif = day + "天前发布";
    } else if (hour != 0) {
        final_dif = hour + "小时前发布";
    } else {
        final_dif = min + "分钟前发布";
    }
    return final_dif;
}

private String FFLocal_time() {
    SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    return sDateFormat.format(System.currentTimeMillis());
}

/**
 * 获取链接的后缀名
 *
 * @return
 */
public static String parseSuffix(String url) {

    Matcher matcher = pattern.matcher(url);

    String[] spUrl = url.toString().split("/");
    int len = spUrl.length;
    String endUrl = spUrl[len - 1];

    if (matcher.find()) {
        String[] spEndUrl = endUrl.split("\\?");
        return spEndUrl[0].split("\\.")[1];
    }
    if (!endUrl.contains(".")){
        return endUrl;
    }else {
        return endUrl.split("\\.")[1];
    }

}
获取cpu信息
private String[] getCpuInfo() {
   String str1 = "/proc/cpuinfo";
   String str2 = "";
   String[] cpuInfo = {"", ""};  //1-cpu型号  //2-cpu频率
   String[] arrayOfString;
   try {
      FileReader fr = new FileReader(str1);
      BufferedReader localBufferedReader = new BufferedReader(fr, 8192);
      str2 = localBufferedReader.readLine();
      arrayOfString = str2.split("\\s+");
      for (int i = 2; i < arrayOfString.length; i++) {
         cpuInfo[0] = cpuInfo[0] + arrayOfString[i] + " ";
      }
      str2 = localBufferedReader.readLine();
      arrayOfString = str2.split("\\s+");
      cpuInfo[1] += arrayOfString[2];
      localBufferedReader.close();
   } catch (IOException e) {
   }
   LogUtil.log("cpuinfo:" + cpuInfo[0] + " " + cpuInfo[1]);
   return cpuInfo;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值