一般情况下对于Android程序布局我们往往使用XML文件来编写,这样可以提高开发效率,但是考虑到代码的安全性以及执行效率,可以通过Java代码执行创建,虽然Android编译过的xml是二进制的,但是加载xml解析器的效率对于资源占用还是比较大的,一般一个简单的TextView,比如 <TextView android:id="@+id/textControl " android:layout_width="100px" android:layout_height="wrap_content" /> 可以等价于下面的Java代码: LinearLayout.LayoutParams textParams = new LinearLayout.LayoutParams(100, LayoutParams.WRAP_CONTENT); //宽度为100px,高为自适应最小的高度 // setOrientation(VERTICAL); 设置布局为垂直 TextView textControl = new TextView(this);//如果从一个XXXLayout.,比如LinearLayout为View的基类时这里this应该换成为创建改类的Context textControl.setText("Android开发网欢迎您"); addView( textControl, textParams ); 当然Java处理效率比XML快得多,但是对于一个复杂界面的编写,可能需要一些套嵌考虑,如果你思维灵活的话,使用Java代码来布局你的Android应用程序是一个更好的方法。
构造
Android开发基础YesNo对话框构造代码 Android开发技术
很多初入Android开发的网友询问,如何快速的实现一个简单的YesNo对话框,其实我们主要的构造代码如下 AlertDialog.Builder builder = new AlertDialog.Builder(CWJ.this); builder.setTitle("标题"); builder.setMessage("问题描述"); builder.setPositiveButton("是", CWJ.this); builder.setNegativeButton("否", null); builder.setCancelable(true); //设置允许取消 builder.show(); //显示这个消息框 下面我们需要为PositiveButton设计一个Listener实现按下事件的处理。我们在Activity类名后面加入 implements DialogInterface.OnClickListener 实现Dialog的按下事件捕获。重写 onClick 方法,即可 public void onClick(DialogInterface dialog, int which) { //dosomething } 当然Android123还是给大家一个更简单的方法吧,无需实现DialogInterface接口,替换上面的 builder.setPositiveButton("是", CWJ.this); 这句为 builder.setPositiveButton("是", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { //dosomething 即可 } })
根据packageName构造Context Android开发技术
通常情况下获取当前应用的context的方法是getApplicationContext,但是通过根据其他的packageName如何构造Context呢? Android平台的应用实例其实还可以通过其他方式构造。比如代码 try { Context ctx= createPackageContext("com.android123.Cwj", 0); //ctx已经是com.android123.cwj的实例 } catch (NameNotFoundException e) { //可能由于pacakgeName不存在所以必须处理该异常 } 需要注意的是,createPackageContext方法的第二个参数可选为CONTEXT_INCLUDE_CODE 和 CONTEXT_IGNORE_SECURITY ,定义分别为4和2,上面为0。一般忽略安全错误问题可以通过CONTEXT_IGNORE_SECURITY 标记,同时可能还需要处理 SecurityException 异常。

