美文网首页
《第一行代码》阅读笔记

《第一行代码》阅读笔记

作者: echossa | 来源:发表于2015-09-17 17:45 被阅读0次
    • 获取当前Activity的类名
         getClass().getSimpleName()
    
    • 启动activity的方法
    public static void actionStart(Context context, String data1, String data2) {
        Intent intent = new Intent(context, SecondActivity.class);
        intent.putExtra("param1", data1);
        intent.putExtra("param2", data2);
        context.startActivity(intent);
    }
    
    • 这里通过android:maxLines指定了EditText的最大行数为两行,这样当输入的内容超过两行时,文本就会向上滚动,而EditText则不会再继续拉伸,如图3.7所示。


    • Listview中的getView优化

    public class FruitAdapter extends ArrayAdapter<Fruit> {
        ……
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            Fruit fruit = getItem(position);
            View view;
            ViewHolder viewHolder;
            if (convertView == null) {
                view = LayoutInflater.from(getContext()).inflate(resourceId, null);
                viewHolder = new ViewHolder();
                viewHolder.fruitImage = (ImageView) view.findViewById (R.id.fruit_image);
                viewHolder.fruitName = (TextView) view.findViewById (R.id.fruit_name);
                view.setTag(viewHolder); // 将ViewHolder存储在View中
            } else {
                view = convertView;
                viewHolder = (ViewHolder) view.getTag(); // 重新获取ViewHolder
            }
            viewHolder.fruitImage.setImageResource(fruit.getImageId());
            viewHolder.fruitName.setText(fruit.getName());
            return view;
        }
        
        class ViewHolder {
            
            ImageView fruitImage;
            
            TextView fruitName;
            
        }
    }
    
    • 获取当前屏幕的密度值
    float xdpi = getResources().getDisplayMetrics().xdpi;
    
    • 分辨率是320乘480像素,那这个屏幕的密度就是160dpi,如果它的分辨率是640乘960,那这个屏幕的密度就是320dpi, 根据Android的规定,在160dpi的屏幕上,1dp等于1px,而在320dpi的屏幕上,1dp就等于2px.

    • 动态添加Fragment.
      1.创建待添加的碎片实例。
      2.获取到FragmentManager,在活动中可以直接getFragmentManager()方法得到。
      3.开启一个事务,通过调用beginTransaction()方法开启。
      4.向容器内加入碎片,一般使用replace()方法实现,需要传入容器的id和待添加的碎片实例。
      5.提交事务,调用commit()方法来完成。

    • transaction.addToBackStack(null)的作用;

          transaction.replace(R.id.right_layout,fragment);
          transaction.addToBackStack(null);//按下Back键可以返回上一个Fragment,而不是返回上一个Activity
          transaction.commit();```
    - 碎片与活动的通信方式
    
    > 活动中获取碎片
    
    

    RightFragment rightFragment = (RightFragment) getFragmentManager() .findFragmentById(R.id.right_fragment);

    >碎片中获取活动
    
    

    getActivity()

    - 碎片与碎片的通信通过活动来进行
    - 碎片的一些回调方法
    1.onAttach() 当碎片和活动建立关联的时候调用。
    2.onCreateView()为碎片创建视图(加载布局)时调用。
    3.onActivityCreated()确保与碎片相关联的活动一定已经创建完毕的时候调用。
    4.onDestroyView()当与碎片关联的视图被移除的时候调用。
    5.onDetach()当碎片和活动解除关联的时候调用。
    
    
    ![Fragment生命周期](https://img.haomeiwen.com/i709507/2b283d959e62a1e7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    
    |  屏幕特征| 限定符| 描述
    | ------: | :-------: | :--------- | 
    |  大小 | small  |提供给小屏幕设备的资源|
    |          |normal|提供给中等屏幕设备的资源|
    |          |large|提供给大屏幕设备的资源|
    |          |xlarge|提供给超大屏幕设备的资源|
    | 分辨率|ldpi|提供给低分辨率设备的资源(120dpi以下)|
    |         |mdpi|提供给中等分辨率设备的资源(120dpi到160dpi)|
    |         |hdpi|提供给高分辨率设备的资源(160dpi到240dpi)|
    |         |xhdpi|提供给超高分辨率设备的资源(240dpi到320dpi)|
    |方向   |land|提供给横屏设备的资源|
    |        |port|提供给竖屏设备的资源|
    
    - 获取当前网络是否可用
    

    ConnectivityManager connectionManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo=connectionManager.getActiveNetworkInfo();
    if(networkInfo != null && networkInfo.isAvailable()) {
    Toast.makeText(context,"network is available", Toast.LENGTH_SHORT).show();
    }
    else {
    Toast.makeText(context,"network is unavailable", Toast.LENGTH_SHORT).show();
    }

    相关文章

      网友评论

          本文标题:《第一行代码》阅读笔记

          本文链接:https://www.haomeiwen.com/subject/ogebcttx.html