简单备份

本文详细探讨了Android应用开发中至关重要的组件和核心技术,包括BroadcastReceiver、Handler、Message及其相关机制,以及如何高效地管理控件布局和输入方法。同时介绍了如何在XML布局文件中设置EditText为只读状态,以及使用dip和sp单位进行界面设计。内容覆盖了从底层原理到实践应用的全面指导。

mount -t vfat  /dev/mmcblk0p1 /mnt/yaffs/
public Bundle getData ()

获取附加在此事件上的任意数据的Bundle对象,需要时延迟创建。通过调用setData(Bundle)来设置Bundle的值。
需要注意的是,如果通过Messenger对象在进程间传递数据时,需要调用Bundle类的Bundle.setClassLoader()方
法来设置ClassLoader,这样当接收到消息时可以实例化Bundle里的对象。

Handler
  消息的处理者。通过Handler对象我们可以封装Message对象,然后通过sendMessage(msg)把Message对象添加
到MessageQueue中;当MessageQueue循环到该Message时,就会调用该Message对象对应的handler对象的
handleMessage()方法对其进行处理。由于是在handleMessage()方法中处理消息,因此我们应该编写一个类继承自
Handler,然后在handleMessage()处理我们需要的操作。
 1.Message
  消息对象,顾名思义就是记录消息信息的类。这个类有几个比较重要的字段:
  a.arg1和arg2:我们可以使用两个字段用来存放我们需要传递的整型值,在Service中,我们可以用来存放Service的ID。
  b.obj:该字段是Object类型,我们可以让该字段传递某个多项到消息的接受者中。
  c.what:这个字段可以说是消息的标志,在消息处理中,我们可以根据这个字段的不同的值进行不同的处理,类似于我们
在处理Button事件时,通过switch(v.getId())判断是点击了哪个按钮。
  在使用Message时,我们可以通过new Message()创建一个Message实例,但是Android更推荐我们通过Message.obtain()或
者Handler.obtainMessage()获取Message对象。这并不一定是直接创建一个新的实例,而是先从消息池中看有没有可用的
Message实例,存在则直接取出并返回这个实例。反之如果消息池中没有可用的Message实例,则根据给定的参数new一个新
Message对象。通过分析源码可得知,Android系统默认情况下在消息池中实例化10个Message对象。

 

 

 

控件间距
android:layout_marginLeft="5dip"      //距离左边
android:layout_marginRight="5dip"      //距离右边
android:layout_marginTop="5dip"      //距离上面
android:layout_marginRight="5dip"      //距离下面

控件显示位置
android:gravity="center"    //left,right, top, bottom
android:gravity="center_horizontal"

android:layout_gravity是本元素对父元素的重力方向。
android:layout_gravity属性则设置控件本身相对于父控件的显示位置
android:gravity是本元素所有子元素的重力方向。

android:layout_gravity="center_vertical"
android:layout_gravity="left"
android:layout_gravity="left|bottom"

 


设置Edit Text只读
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.sqliteshowdemo);
  setTitle("查看日记");
  
  //设置Edit Text只读--start
  showTitle.setOnFocusChangeListener(focus_listener_noIM);
  showTitle.setOnTouchListener(touch_listener_noIM);
  showContent.setOnFocusChangeListener(focus_listener_noIM);
  showContent.setOnTouchListener(touch_listener_noIM);
  //设置Edit Text只读--end
 
 }

/*
  * 设置Edit Text只读
  */
 private void hideIM(View edt){
        try {
            InputMethodManager im = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
            IBinder  windowToken = edt.getWindowToken();
            if(windowToken != null) {
                im.hideSoftInputFromWindow(windowToken, 0);
            }
        } catch (Exception e) {
            Log.e("HideInputMethod", "failed:"+e.getMessage());
        }
    }

 /*
  * 设置Edit Text只读
  */
    private OnFocusChangeListener focus_listener_noIM = new OnFocusChangeListener(){
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if (hasFocus==true) {
                hideIM(v);
            }
        }
    };

 /*
  * 设置Edit Text只读
  */
    private OnTouchListener touch_listener_noIM = new OnTouchListener(){
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if(event.getAction()==MotionEvent.ACTION_DOWN) {
                hideIM(v);
            }
            return false;
        }
    };

XML文件中EditText属性:
        android:singleLine="true"
        android:ellipsize="none"
        android:editable="false"
        android:inputType="none"


几种像素:
根据google的推荐,像素统一使用dip,字体统一使用sp 
px就是像素,如果用px,就会用实际像素画,比个如吧,用画一条长度为240px的横线,在480宽的模拟器上看就是一半的屏宽,而在320宽的模拟器上看就是2/3的屏宽了。
dip,就是把屏幕的高分成480分,宽分成320分。比如你做一条160dip的横线,无论你在320还480的模拟器上,都是一半屏的长度。
  sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。
 
  CharSequence 是 char 值的一个可读序列。此接口对许多不同种类的 char 序列提供统一的只读访问

(个人理解应该算得上是char类型得一个集合,是interface)

String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例来实现。

 

 

 

 

 

Dalvik VM获取生成的Java类文件,将它们组合成一个或多个Dalvik可执行文件(.dex).它重用
多个类文件中的重复信息,与未压缩的传统.jar文件相比,有效地将空间需求减少一半。而且
对垃圾收集进行了优化。Dalvik VM是在c库之上,但又在各种java程序之下的一个中间部分。
Activity表示应用程序中的一个屏幕。大部分应用程序内都拥有多个Activity。
通过ContentProvider可以公开数据,容许应用程序使用来自其他应用程序的数据。

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值