Android学习摘要
2011-8-16
Kagula
内容概要
介绍Android开发环境搭建,Android程序开发。本文适合熟悉Java语言、Eclipse的使用、其它平台上有移动开发经验(比如iOS、Symbian、WP7),但是没有在Android上做过开发的程序员。
正文
开发环境搭建
我们假设你的计算机上已经安装了JDK。
开发环境有三部组成:Android开发包,Eclipse,以及Eclipse上的ADT插件
[1]先到 http://developer.android.com/sdk/installing.html下载安装Android的SDK
[2]然后 http://www.eclipse.org/downloads/ 下载安装Eclipse
[3]启动Eclipse,根据http://developer.android.com/sdk/eclipse-adt.html下载安装ADT
你需要新建一个AVD(Android Virtual Device)用来测试你的Android代码
编程入门
Android程序的代码以一个或多个Activity的继承类(Java文件)组成。每个Activity的继承类对应一个或多个布局文件(XML文件)。
Activity的继承类负责数据处理,XML布局文件负责视图排版。
每个Android项目文件都会包含AndroidManifest.xml文件。这个文件主要包括以下信息[1]当前软件包里有哪些Activity[2]从哪个Activity启动程序[3]对设备的存取权限设定,等等。
你可以新建一个Android程序,让它跑一下,感觉一下。
[1]源码都是放在src节点下
[2]布局是放在res\layout节点下
[3]gen节点下的文件不要去修改,当你在res节点下修改、添加资源时这个节点下的文件内容会自动更新
可以先使用log.d(“MyDebugTag”,”MyLine”);这样的代码修改源码并运行程序,也可以修改下src/layout节点下的main.xml文件。Activity继承类使用setContentView函数装载布局文件(R.layout.main对应main.xml)
注意log.d语句是打印到DDMS下的Logcat窗口里去的。
新手常见问题
【1】横屏竖屏切换事件(源码示例)
可以给每个activity加上android:configChanges="keyboardHidden|orientation"属性,就不会重启activity.而是去调用onConfigurationChanged(ConfigurationnewConfig). 这样就可以在这个方法里调整显示方式.
比如
@Override
public void onConfigurationChanged(ConfigurationnewConfig) {
// TODO Auto-generated method stub
super.onConfigurationChanged(newConfig);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
//竖屏 //doSomrthing
Log.d("MyDebug","竖屏");
} else {
//横屏时dosomething
Log.d("MyDebug","横屏");
}
【2】响应控件的Click事件(源码示例)
iv11 =(ImageView)findViewById(R.id.icon11);
iv11.setOnClickListener(new MyListener());
//这里省略若干行代码
class MyListener implementsOnClickListener{
public void onClick(View v)
{
//这里处理这个控件的单击事件
}
}
【3】从当前Activity跳转到其它Activity(源码示例)
TakeOrderActivity是当前Activity类名,SecondActivity是下一个Activity类名
Intent intent = new Intent();
intent.setClass(TakeOrderActivity.this,SecondActivity.class);
TakeOrderActivity.this.startActivity(intent);
通过intent的putExtra和getXXXExtra方法可以在两个Activity之间传递参数。
【4】显示短暂提示消息
Toast.makeText(getApplicationContext(),"提示消息",Toast.LENGTH_SHORT).show();
【5】ListView控件拖动时背景变的问题
<ListViewandroid:cacheColorHint="#00000000"
【6】访问HTTP服务器中返回的数据(带Session)
try{
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://192.168.0.52/json/sesion.asp");
//First
HttpResponse response = httpclient.execute(httpget);
String s = EntityUtils.toString(response.getEntity());
//Second
response = httpclient.execute(httpget);
String s2 = EntityUtils.toString(response.getEntity());
//Third
response = httpclient.execute(httpget);
String s3 = EntityUtils.toString(response.getEntity());
String s4 = s + "," + s2 + "," + s3;
System.out.println(s4);
}catch(Exception e)
{
System.out.println(e.toString());
}
参考资料
[1]《Android ViewFlipper触摸动画》
http://android.tgbus.com/Android/tutorial/201104/347980.shtml
注意,上文中的“viewflipper”标签要写成“android.widget.ViewFlipper”注意大小写,否则可能会提示“找不到android.view.viewflipper的定义”
[2]《如何美化android程序:自定义ListView背景》
http://hi.baidu.com/286177943/blog/item/a39c794211aff60972f05d6d.html
[3]《使用Gson将Java对象转换为JSON》
http://hi.baidu.com/etune/blog/item/625e8e4d1de4713d09f7ef86.html
[4]《Google开源项目Gson使用教程》
http://jingyan.baidu.com/article/1709ad80cbcddc4634c4f016.html