从过完年回来上班,看别人在看第一行代码,到现在也有一个月了,终于把他看完了,这是在住的地方记的笔记,在上班的地方的笔记还没写上去。
然后将这个值传入 setContentView()方法即可。注意这里我们使用的 R,是
com.example.activitytest 包下的 R 文件,
然后我们使用了 android:label 指定活动中标题栏的内容,标题栏是显示在活动最
顶部的,待会儿运行的时候你就会看到
重写 onCreateOptionsMenu()方法
getMenuInflater().inflate(R.menu.main, menu);
一个 Menu 对象当中,这里直接使用 onCreateOptionsMenu()方法中传入的 menu 参数。然后给这个方法返回 true,表示允许创建的菜单显示出来,如果返回了 false,创建的菜单将无法显示。
显式 Intent 其中一个是 Intent(Context packageContext, Class> cls)。这个构造函数接收两个参数,第一个参数 Context 要求提供一个启动活动的上下文,第二个参数 Class 则是指定想要启动的目标活动
隐式 Intent 我们使用了 Intent 的另一个构造函数,直接将 action 的字符串传了进去
每个 Intent 中只能指定一个 action,但却能指定多个 category。
Intent 的 action 是 Intent.ACTION_VIEW,这是一个 Android 系统内置的动作,其常量值为 android.intent.action.VIEW。
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));
setData() 它接收一个 Uri 对象 以字符串的形式传入到 Uri.parse()方法中解析产生
Intent 的 action 是 Intent.ACTION_DIAL data 部分指定了协议是 tel
通过按下Back 键回 onBackPressed
返回栈 我们每启动一个新的活动,就会覆盖在原活动之上 按下 Back 键或调用 finish()方法去销毁一个活动时,处于栈顶的活动会出栈
运行状态 暂停状态 停止状态
android:theme="@android:style/Theme.Dialog"
ProgressDialog 和 AlertDialog 有点类似
ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
setCancelable()中传入了 false,表示 ProgressDialog 是不能通过 Back 键取消掉的,这时你就一定要在代码中做好控制,当数据加载完成后必须要调用 ProgressDialog 的dismiss()方法来关闭对话框
LinearLayout 的排列方向是 horizontal,因此我们只能指定垂直方向上的排列方向
android:inputType 属性的值指定为 textPassword,把 EditText 变为密码输入框
所用的所有布局都是直接或间接继承自 ViewGroup
引入布局
添加自定义控件和添加普通控件的方式基本是一样的,只不过在添加自定义控件的时候我们需要指明控件的完整类名,包名在这里是不可以省略的
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
}
px 是像素的意思,即屏幕中可以显示的最小元素单元,我们应用里任何可见的东西都是由一个个像素点组成的。什么叫密度?Android 中的密度就是屏幕每英寸所包含的像素数,通常以 dpi 为单位。
在 160dpi 的屏幕上,1dp 等于 1px,而在 320dpi 的屏幕上,1dp就等于 2px。因此,使用 dp 来指定控件的宽和高,就可以保证控件在不同密度的屏幕中的显示比例保持一致。
Nine-Patch 图片 能够指定哪些区域可以被拉伸而哪些区域不可以。
在上边框和左边框绘制的部分就表示当图片需要拉伸时就拉伸黑点标记的区域,在下边框和右边框绘制的部分则表示内容会被放置的区域
ListView 中用到了一个 android:divider属性,它可以指定 ListView 分隔线的颜色,这里#0000 表示将分隔线设为透明色
adapter.notifyDataSetChanged(); // 当有新消息时,刷新
ListView中的显示
msgListView.setSelection(msgList.size()); // 将ListView
定位到最后一行
addToBackStack()
那些屏幕被认为是 large 的设备就会自动加载 layout-large 文件夹下的布局
normal 提供给中等屏幕设备的资源
large 提供给大屏幕设备的资源
mdpi 提供给中等分辨率设备的资源(120dpi 到 160dpi)
hdpi 提供给高分辨率设备的资源(160dpi 到 240dpi)
xhdpi 提供给超高分辨率设备的资源(240dpi 到 320dpi)
(Smallest-width Qualifier) 最小宽度限定符允许我们对屏幕的宽度指定一个最小指(以 dp 为单位),然后以这个最小值为临界点,屏幕宽度大于这个值的设备就加载一个布局,屏幕宽度小于这个值的设备就加载另一个布局 layout-sw600dp
当程序运行在屏幕宽度大于 600dp 的设备上时,会加载 layout-sw600dp/activity_main 布局
android:scaleType 属性设置为 fitXY,表示让这张图片填充满整个控件的大小
Fragment 看作view来用,在xml中用framelayout包装它
广播是一种可以跨进程的通信方式
发送有序广播 android:priority="100" abortBroadcast()方法,就表示将这条广播截断
LocalBroadcastManager
ViewRoot就是继承于Handler,其作用主要是接收WmS的通知
UI线程是从ActivityThread运行的,在该类中的main()方法中,已经使用Looper.prepareMainLooper()为该线程添加了Looper对象
内容URI 包名加表名
跨程序访问数据的功能确实是实现在Android 2.3及以上版本,使用的是HttpURLConnection,而在Android 2.2及以下版本,使用的是HttpClient。
第一种、HttpURLConnection接口
Http通信中使用最多的是Get和Post.
Get请求可用获得静态页面,也可以把参数放在URL字串的后面,传递给服务器。
Post参数不是放在URL字串里面,而是放在http请求数据中。
URLConnection与HttpURLConnection都是抽象类,无法直接实例化对象。其对象主要通过URL的openConnection方法获得,但openConnection方法只是创建URLConnection或者HttpURLConnection
的实例,并不是进行真正的连接操作。
DefaultHttpClient
是默认的一个HTTP客户端,可用它创建一个Http连接 代码如下:
HttpClinet httpclinet = new HttpClient();
HttpResponse是一个HTTP连接响应,当执行一个HTTP连接后,就会返回一个HttpResponse,可以通过HttpResponse获得一些响应的信息。
下例为请求一个HTTP连接并获得该请求是否成功的代码:
HttpResponse httpResponse = httpclient.execute(httpRequest);
if(httpResponse.getStatusLine(),getStatusCode() == HttpStates.SC_OK){//判断是否连接成功
}
IntentService 类
我们首先给sendHttpRequest()方法添加了一个HttpCallbackListener 参数,并在方法的内光照传感器
Sensor sensor = senserManager.getDefaultSensor(Sensor.TYPE_LIGHT);角度,values[2] 记录着手机围绕Y 轴的旋转角度。
fork之后可以把项目通过git clone复制到本地
听说Android编程权威指南也不错,准备接下来看这本书。
第一行代码+源码下载地址
Android编程权威指南下载
Android编程权威指南源码下载