学习Android开发差点儿相同有两年时间了。期间也做了大大小小的一些项目。近来抽出闲暇想把Android基础强化一下,之前在网上看到了郭霖郭大神的几篇博客。从中受益不少。于是花了近一周时间看完了郭神的一本Android教材——《Android第一行代码》。这本书相比其它教材个人感觉更为基础,内容非常有用。看完之后我也有一些收获,学到了一些能够非常好的运用到实际中的Android小技巧。以下从中选出我认为非常有价值的地方做个记录。
同一时候欢迎各位指正补充~~
非常多时候当我们接手一个较为复杂的源代码的时候。里面会有非常多个Acvitity。此时我们往往非常难从中找出哪个界面相应哪个源代码,这无疑会降低我们的开发效率。
以下介绍书中一个小技巧:
1、 编写一个新Activity如BaseActivity去继承Activity,代码例如以下:
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Log.d("BaseActivity", getClass().getSimpleName());
}
}
2、让project里所有的Activity都继承自BaseActivity;
3、点击进入你想查看代码的界面,同一时候观察LogCat中的输出。打印出的信息就是相应的Activity的类名了。
大家对Intent的都非常熟悉,他是Android系统的搬运工。
当我们启动一个Acivity并希望向它传递一些数据,这时候通常都会用到intent。
一个项目中可能会有非常多个Activity都须要传递数据。而开发人员全然有可能不确定这些Activity分别要传递什么数据,这时候我们能够用一个技巧来规范这样一种“通信协议”。
public class AnotherActivity extends BaseActivity
{
public static void actionStart(Context context,String val1,String val2)
{
Intent intent = new Intent(context, AnotherActivity.class);
intent.putExtra("val1", val1);
intent.putExtra("val2", val2);
context.startActivity(intent);
}
}
这样一来,在使用的过程中。当须要跳转的时候能够用以下代码
AnotherActivity.actionStart(FirstActivity.this, "val1", "val2");
TableLayout是在开发中非常少用到的一个布局。
当然对于这个控件有几个地方我认为也须要注意。
android:stretchColunms="1"
android:layout_span="2"
这样一来该控件就会占2个位置。
我们在用listview的时候都会用到适配器,Android为我们做了两个经常使用的适配器:SimpleAdapter和ArrayAdapter等。当我们有特殊要求的时候须要自己定义一个适配器继承自BaseAdapter。这样能够更加灵活的完毕我们须要的特殊功能。但事实上大多时候我们能够编写一个继承自ArrayAdapter的适配器,这样更加简单:
public class MCAdapter extends ArrayAdapter<Fruit>
{
private int resourceId;
public FruitAdapter(Context context, int textViewResourceId,
List<Fruit> objects) {
super(context, textViewResourceId, objects);
resourceId = textViewResourceId;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
... ...
return view;
}
这样一来。我们仅仅须要重写getView这样一个方法,而假设是继承自BaseAdapter,我们须要至少重写4个方法。能够是我们的代码更加简化。
这里仅仅是想记录一个Fragment的方法:transaction.addToBackStack(null);
<intent-filter **android:priority="50">
... ...
<intent/>
<receive/>
在使用系统相机的过程中。我们能够通过startActivityForResult启动相机,从而接收拍照成功与否的返回值。并且能够对拍照后的图片进行裁剪。
Intent intent = new intent("android.media.action.IMAGE_CAPTURE");
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(intent, TAKE_PHOTO);
Intent intent = new intent("android.media.action.CROP");
intent.setDataAndType(imageUri, "image/*");
intent.putExtra("scale", true);
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(intent, CROP_PHOTO);
书中的这一章主要分为两个部分:1、通过Android系统API获取本机位置信息;2、通过调用百度地图显示地图信息。前者是Android自带的函数,而后者须要下载百度API。
对于第一部分Android API没有不论什么变化。而第二部分书中是用的百度地图2.3版。而在我写这篇文章的时候百度地图最新版是3.2。非常多函数已经不再适用,所以这一章的内容基本能够忽略了。
大家能够依照需求照着百度文档来学习这一部分内容:百度地图文档。
好了,以上是我在读这本书中所收获的一些东西,作者提供的一些小技巧假设能够运用得当,能够非常好的帮助我们开发项目。提高我们的效率。今后我也会不断增加所学的有用技巧。也欢迎大家对内容进行指正、补充。
谢谢!
——超低空
原文:http://www.cnblogs.com/bhlsheji/p/5226305.html