• Android开发问题总结(一)


    这是日常工作中遇到的问题,汇总下来以备日后查看

    1、字体修改: as下assets文件加的创建,修改文字的字体,目前只支持ttf格式

    setTypeFace(tv_luckydraw_rule, "fonts/LanTingZhongCuHei.TTF");
    /**
    * 设置字体
    *
    * @param mTextView
    * @param font
    */
    private void setTypeFace(TextView mTextView, String font) {
    Typeface typeFace = Typeface.createFromAsset(getAssets(), font);
    mTextView.setTypeface(typeFace);
    }
    

    2、让ExpandableListView的group取消点击监听

    listview..setOnGroupClickListener(this);
    /**
    * 取消group的点击监听
    */
    @Override
    public boolean onGroupClick(ExpandableListView expandableListView, View view, int i, long l) {
    return true;
    }
    

    3、EditText降输入的小写字母自动,变化为大写字母(注:设置完之后只能输入大写字母)

    import android.text.method.ReplacementTransformationMethod;
    
    /**
    * @author bruce.z
    * 
    */
    public class AllCapTransformationMethod extends ReplacementTransformationMethod {
    
    @Override
    protected char[] getOriginal() {
        char[] aa = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j','k','l','m','n','o','p','q','r','s','t','u','v',    'w','x','y','z' };
        return aa;
    }
    
    @Override
    protected char[] getReplacement() {
        char[] cc = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J','K','L','M','N','O','P','Q','R','S','T','U','V',    'W','X','Y','Z' };
        return cc;
    }
    
    }
    	
    editext.setTransformationMethod(new AllCapTransformationMethod ());
    

    4、TimePickerDialog,选择0-9分钟时,显示为10:0 10:1,要改成 10:00 10:01 的解决方式

    /**
    * 设置时间选择器
    */
    private void setTimePickerDialog() {
    mCalendar = Calendar.getInstance();
    mCalendar.setTimeInMillis(System.currentTimeMillis());
    final int hour = mCalendar.get(Calendar.HOUR_OF_DAY);
    int minute = mCalendar.get(Calendar.MINUTE);
    new TimePickerDialog(this,new TimePickerDialog.OnTimeSetListener() {
    
    @Override
    
    public void onTimeSet(TimePicker view,int hourOfDay,int minute)
    {
    
    String sHour = hour < 10 ? "0" + hour : "" + hour;
    String sMinutes = minute < 10 ? "0" + minute : ""
    + minute;
    tv_flight_start_time.setText(sHour + ":" + sMinutes);
    }
    
    }, hour, minute, true).show();
    }
    

    5、editText设置软键盘删除键监听

    editText.setOnKeyListener(new View.OnKeyListener() {
                @Override
                public boolean onKey(View view, int i, KeyEvent keyEvent) {
                    if (i == KeyEvent.KEYCODE_DEL
                            && keyEvent.getAction() == KeyEvent.ACTION_DOWN) {
                        editText.setText("");
                        return true;
                    }
                    return false;
                }
    
            });
    

    6、应用商店有同名的APP,需要认领应用一致的签名写入空包中,签名写入空白apk

    jarsigner-verbose -keystore D:oldClient -signedjar D:TestSign_OK.apk D:TestSign.apkjsj

    jarsigner -verbose -keystore [您的私钥存放路径]-signedjar [签名后文件存放路径][未签名的文件路径] [您的证书名称]

    7、TextView过长隐藏部分文字,可指定开头,中部,结尾等

    TextView中有个ellipsize属性,作用是当文字过长时,该控件该如何显示,解释如下:

    1.android:ellipsize=”start”—–省略号显示在开头

    2.android:ellipsize=”end”——省略号显示在结尾

    3.android:ellipsize=”middle”—-省略号显示在中间

    4.android:ellipsize=”marquee”–以跑马灯的方式显示(动画横向移动)

    还需将文字设置成maxline=1,指定固定宽度

    8、解决RecycleView中item中子View,setVisibility为GONE隐藏视图但是现实空白的方法

    public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
        ...
    
        public void setVisibility(boolean isVisible){
            RecyclerView.LayoutParams param = (RecyclerView.LayoutParams)itemView.getLayoutParams();
            if (isVisible){
                param.height = LinearLayout.LayoutParams.WRAP_CONTENT;
                param.width = LinearLayout.LayoutParams.MATCH_PARENT;
                itemView.setVisibility(View.VISIBLE);
            }else{
                itemView.setVisibility(View.GONE);
                param.height = 0;
                param.width = 0;
            }
            itemView.setLayoutParams(param);
        }
    
        public ViewHolder(View itemView) {
            super(itemView);
            ...
        }
    }
    
  • 相关阅读:
    C++的开源跨平台日志库glog学习研究(一)
    C++实现的字符串模糊匹配
    Git&GitHub学习日志
    UTF-8和GBK等中文字符编码格式介绍及相互转换
    HDU
    340. 通信线路(分层图最短路)
    ACwing 你能回答这些问题吗(线段树求最大连续字段和)
    Laptop(线段树+离散化)
    Infinite Inversions(树状数组+离散化)
    HDU-4417-Super Mario(主席树解法)
  • 原文地址:https://www.cnblogs.com/cloud9527/p/13161447.html
Copyright © 2020-2023  润新知