Contents
  1. 1. 启动界面
  2. 2. ActionBar
  3. 3. EditText、TextView
    1. 3.1. 重要的知识点
  • DatePicker
    1. 1. markdown引用格式
    2. 2. 退出整个程序的代码
    3. 3. 退出到桌面的代码
    4. 4. 如何判断是否第一进入本界面
    5. 5. 将常用的代码封装成一个类 IntentUtils类
    6. 6. Selector在Button里无效的原因
    7. 7. 如何导入so文件
    8. 8. 缓存集合的时候不能用“=”赋值,要用addAll或者For循环。
    9. 9. .9.png
    10. 10. 自动弹出软键盘
  • EditText 只读内容滚动
  • EditText禁止输入回车
  • 集合按key排序
  • 测试方法
  • aligntop没效果
  • Animation动画
  • minHeight的作用
  • android:alpha属性
  • String.Format
  • 删除桌面上不存在的项目
  • mipmap尺寸
  • include包括的布局不能使用below等属性
  • 高度布局(实现下列效果)
  • ScrollView与Edittext冲突
  • 启动界面

    • 如何实现一个启动界面,例如微信、网易新闻。
    1. 创建一个布局文件,里面放一张图。
    2. 在主Activity里,通过handler 的postDelayed方法 进行跳转界面  
    
            new Handler().postDelayed(new Runnable(){ 
    
                @Override
                    public void run(){
                        Intent intent = new Intent (Appstart.this,Welcome.class);
                        startActivity(intent);            
                        Appstart.this.finish();
                    }
    
            },1000);  
    

    ActionBar

    标题栏可用一个layout 表示 heidht设置45dp
    分割线可用view控件表示 height设置成2dp

    EditText、TextView

    EditText background=”@null”可以去掉下划线
    TextView 设置中心垂直 水平 无效果,是因为宽高的影响
    EditText 设置字数限制 两种方法:
    1.xml中设置maxLength属性
    2.java调用setFilters方法

    editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(140)});  
    

    TextView设置行间距

    android:lineSpacingExtra="7dp"  
    

    EditText 设置光标位置

    android:gravity="right"  
    

    解决光标在两行字 中间的方法

    android:gravity="top"
    

    设置默认键盘不显示

    android:windowSoftInputMode="adjustNothing|stateHidden"
    

    光标移到最后

    Editable ea = editText.getText();
    editText.setSelection(ea.length());
    
    重要的知识点

    相同布局的Activity,可以通过传参数 改变Title来实现 多个activity共用一个布局。

    DatePicker

    DatePicker 必须 设置 显示样式

    android:datepickermode  
    

    设置日历不显示

    android:calendarViewShown="false"  
    

    markdown引用格式

    markdown引用格式:日期+文件名+”/“

    http://localhost:4000/2015/09/17/2015-09-17-ImageLoader/
    

    ImageLoader

    源码来自此人

    退出整个程序的代码

    android.os.Process.killProcess(android.os.Process.myPid());
    

    退出到桌面的代码

    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_MAIN);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    intent.addCategory(Intent.CATEGORY_HOME);
    startActivity(intent);
    

    如何判断是否第一进入本界面

    1. onCreate 获取一个SharedPreferences、同时创建一个xml文件。
    2. 创建一个boolean变量isFirst 通过sp对象来获取其值。
    3. 判断isFirst是否为true,是则做第一次的处理。
    4. 第一次处理之后,要把boolean值设置为false,并传给xml文件里。
    
    代码如下
    
        private SharedPreferences sp;  
        private boolean isFirst = true;  
        public void onCreate(){  
        sp = getSharedPreferences("Erintrus.xml",MODE_PRIVATE);
        isFirst = sp.getBoolean("isFirst",true);  
            if(isFirst){  
            Editor editor = sp.edit();
            //做第一次进入界面的处理  
            editor.putBoolean("isFirst",false);        //改变xml文件里isFirst的值  
            editor.commit();  
    
            }
    
        }
    

    将常用的代码封装成一个类 IntentUtils类

    public class IntentUtils{
    
        public void statrActivity(Context context , Class<?> cls){
            Intent intent = new Intent(context,cls);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(intent);
        }
    
    }
    

    Selector在Button里无效的原因

    默认图必须放在最后面
    
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:drawable="@drawable/common_icon_gray_tab" android:state_pressed="true"></item>
        <item android:drawable="@drawable/common_icon_red_tab"></item> //默认图必须放在最下面
    </selector>
    

    如何导入so文件

    在src/main 下面新建一个jniLibs文件夹 放入文件即可
    

    缓存集合的时候不能用“=”赋值,要用addAll或者For循环。

    .9.png

    • 一句话总结:画黑点的地方无限延长
    • tool文件夹先开启工具

    自动弹出软键盘

    Mainfest中设置 windowSoftInputMode属性

    android:windowSoftInputMode="stateAlwaysVisible"
    

    【A】stateUnspecified:默认状态,系统将选择一个合适的状态或依赖于主题的设置

    【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示

    【C】stateHidden:用户选择activity时,软键盘总是被隐藏

    【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的

    【E】stateVisible:软键盘通常是可见的

    【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态

    【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示

    【H】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间

    【I】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分

    解决方法:

    在activity设置windowSoftInputMode属性为adjustPan
    adjustResize
    

    标题栏被顶走

    解决方法:

    在activity设置windowSoftInputMode属性为adjustResize
    

    EditText 只读内容滚动

    setKeyListener(null);
    

    EditText禁止输入回车

    • 方法一

      @Override
      public boolean dispatchKeyEvent(KeyEvent event) {
          switch (event.getKeyCode()) {
              case KeyEvent.KEYCODE_DPAD_CENTER:
              case KeyEvent.KEYCODE_ENTER:
                  return true;
          }
          return super.dispatchKeyEvent(event);
      }
      
    • 方法二
    //在布局文件里声明singleLine属性
    android:singleLine="true"
    

    集合按key排序

    • 用TreeMap

      Map<Integer, ArrayList<User>> map = new TreeMap<>();
      
    • 示例

    BNJ中联系人列表

    测试方法

    • 设置null,空字符等数据

    aligntop没效果

    • 没有设置父布局的高度

    Animation动画

    Animation

    minHeight的作用

    • 设置warp_content可实现根据文本自动改变控件的高度

    android:alpha属性

    • 设置透明度 值是 0(透明) - 1(不透明)范围

    实战:

    BNJ实现%50黑的图片

    1. FramLayout 里面放一个ImageView
    2. Framlayout 设置背景为黑色
    3. ImageView设置alpha=0.5

    String.Format

    • 设置浮点数显示一位小数

      //score是浮点数,%.2f表示只显示两位小数
      String.format("%.2f",score);
      

    删除桌面上不存在的项目

    DEL /F /A /Q \\?\%1 
    RD /S /Q \\?\%1 
    

    mipmap尺寸

    mipmap - mdpi 48
    mipmap - hdpi 72
    mipmap - xhdpi 96
    mipmap - xxhpi 144

    include包括的布局不能使用below等属性

    • 错误示例

      <include 
          android:layout_below="@+id/llContainer" //这里会报错
          layout="@layout/activity_mani"/>  
      
    • 总结:其他控件要相对该layout进行布局,必须使用layout里面的根布局的id来实现。

    高度布局(实现下列效果)

    • 布局技巧

      • RelativeLayout为自适应、设置最小高度
      • tvTitle为margin_top= 15
      • tvValue 为margin_top = 15 、margin_bottom = 15
    • 参考机构端事项内容

    ScrollView与Edittext冲突

    • Scrollview 里面加有edittext,由于Edittext会自动获取焦点,会导致界面向Edittext方向移动。(如下)

    • 解决办法:Edittext的父布局加入下面代码

      android:focusable="true"  
      android:focusableInTouchMode="true"
      
    Contents
    1. 1. 启动界面
    2. 2. ActionBar
    3. 3. EditText、TextView
      1. 3.1. 重要的知识点
  • DatePicker
    1. 1. markdown引用格式
    2. 2. 退出整个程序的代码
    3. 3. 退出到桌面的代码
    4. 4. 如何判断是否第一进入本界面
    5. 5. 将常用的代码封装成一个类 IntentUtils类
    6. 6. Selector在Button里无效的原因
    7. 7. 如何导入so文件
    8. 8. 缓存集合的时候不能用“=”赋值,要用addAll或者For循环。
    9. 9. .9.png
    10. 10. 自动弹出软键盘
  • EditText 只读内容滚动
  • EditText禁止输入回车
  • 集合按key排序
  • 测试方法
  • aligntop没效果
  • Animation动画
  • minHeight的作用
  • android:alpha属性
  • String.Format
  • 删除桌面上不存在的项目
  • mipmap尺寸
  • include包括的布局不能使用below等属性
  • 高度布局(实现下列效果)
  • ScrollView与Edittext冲突