实习开发笔记

本文介绍了Android开发中的关键知识点,包括页面跳转的两种方法、资源文件的命名规则、TextView组件的使用技巧、Handler机制详解及布局文件的组合使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Android实现页面跳转的两种方式:

第一种方式,用action来跳转:使用Action跳转,如果有一个程序的 AndroidManifest.xml中的某一个Activity的Intent-Filter段中定义了包含了相同的Action那么这个Intent 就与这个目标Action匹配。如果这个Intent-Filter段中没有定义Type,Category,那么这个 Activity就匹配了。但是如果手机中有两个以上的程序匹配,那么就会弹出一个对话可框来提示说明。

Action的值在Android中有很多预定义,如果你想直接转到你自己定义的Intent接收者,你可以在接收者的 Intent-Filter中加入一个自定义的Action值(同时要设定 Category值为"android.intent.category.DEFAULT"),在你的Intent中设定该值为Intent的 Action,就直接能跳转到你自己的Intent接收者中。因为这个Action在系统中是唯一的。

 

第二种方式,用类名跳转:Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。Intent在这里起着实现调用者与被调用者之间的解耦作用。

Intent传递过程中,要找到目标消费者(另一个Activity,IntentReceiver或Service),也就是Intent的响应者。用类名跳转,需要在AndroidManifest.xml中申明activity ,例如跳转HelloTabWidget 这个类要在清单文件中注册<activityandroid:name="HelloTabWidget"></activity>

 

2.资源文件添加注意问题:资源文件下的文件命名必须为小写a-z数字0-9和下划线_和点.。这些符号,其他命名符号都是不允许的。

 

3.TextView组件下给文字添加下划线方法:getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);

TextView里面添加监听事件OnClick必须添加多一个语句设置clickable=”true”,点击才会响应。

<TextView

               android:onClick="regist"

               android:id="@+id/tv_regist"

               android:clickable="true"

               android:layout_width="wrap_content"

               android:layout_height="wrap_content"

               android:layout_alignParentRight="true"

               android:layout_alignParentTop="true"

               android:layout_marginRight="29dp"

               android:textSize="20dp"

               android:text="立即注册"

                />

3.布局中android:paddingLeft 和layout_marginLe 区别

android:paddingLeft:指的是在本控件中,预留闲置多少空间

android:layout_marginLeft:指的是这个控件距离父控件的空间有多少

 

4.AndroidHandler的使用:

1. 对于线程中的刷新一个View为基类的界面,可以使用postInvalidate()方法在线程中来处理,其中还提供了一些重写方法比如postInvalidate(intleft,int top,int right,int bottom) 来刷新一个矩形区域,以及延时执行,比如postInvalidateDelayed(long delayMilliseconds)postInvalidateDelayed(longdelayMilliseconds,int left,int top,int right,int bottom) 方法,其中第一个参数为毫秒

 2. 当然推荐的方法是通过一个Handler来处理这些,可以在一个线程的run方法中调用handler对象的 postMessagesendMessage方法来实现,Android程序内部维护着一个消息队列,会轮训处理这些,如果你是Win32程序员可以很好理解这些消息处理,不过相对于Android来说没有提供 PreTranslateMessage这些干涉内部的方法。

3. Looper又是什么呢? ,其实Android中每一个Thread都跟着一个LooperLooper可以帮助Thread维护一个消息队列,但是LooperHandler没有什么关系,我们从开源的代码可以看到Android还提供了一个Thread继承类HanderThread可以帮助我们处理,在HandlerThread对象中可以通过getLooper方法获取一个Looper对象控制句柄,我们可以将其这个Looper对象映射到一个Handler中去来实现一个线程同步机制,Looper对象的执行需要初始化Looper.prepare方法就是昨天我们看到的问题,同时推出时还要释放资源,使用Looper.release方法。

4.Message Android是什么呢? 对于AndroidHandler可以传递一些内容,通过Bundle对象可以封装StringInteger以及Blob二进制对象,我们通过在线程中使用Handler对象的sendEmptyMessagesendMessage方法来传递一个Bundle对象到Handler处理器。对于Handler类提供了重写方法handleMessage(Message msg) 来判断,通过msg.what来区分每条信息。将Bundle解包来实现Handler类更新UI线程中的内容实现控件的刷新操作。相关的Handler对象有关消息发送sendXXXX相关方法如下,同时还有postXXXX相关方法,这些和Win32中的道理基本一致,一个为发送后直接返回,一个为处理后才返回 .

5.java.util.concurrent对象分析,对于过去从事Java开发的程序员不会对Concurrent对象感到陌生吧,他是JDK 1.5以后新增的重要特性作为掌上设备,我们不提倡使用该类,考虑到Android为我们已经设计好的Task机制,这里不做过多的赘述,相关原因参考下面的介绍:

6. Android中还提供了一种有别于线程的处理方式,就是Task以及AsyncTask,从开源代码中可以看到是针对Concurrent的封装,开发人员可以方便的处理这些异步任务。

5.将两个xml布局文件添加到一个布局文件里的方法:<includelayout=”@要添加的xml文件名”>

6.ViewPager的使用方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值