经过Intellij IDEA初步编辑的应用程序虽然功能齐全,但是应用程序不支持任何形式的交互。使应用程序支持交互事件,需要编辑src文件夹中的MyActivity类。
1 打开MyActivity类
从Project视图中,找到MyActivity.java类并单击。
2 为视觉元素添加应用
在Android中,开发者需要明确地获得视觉元素的引用来以编程方式进行操纵。开发者需要定义活动类来保存这些引用,然后从onCreate内部调用一个新创建的方法初始化这些应用。需要添加以下代码到MyActivity类:
public class MyActivity extends Activity {
private TextView message;
private ImageView droid;
// More code goes here ...
}
接下来,为InitializeAppin onCreate新方法添加一个调用。 IntelliJ IDEA会及时检测该方法是否丢失,并为用户提供自动生成。
InitializeAppyou方法中为可视化元素指定引用:
private void InitializeApp() {
message = (TextView) findViewById(R.id.message);
droid = (ImageView) findViewById(R.id.imageView);
// More code goes here ...
}
表达式R.id.xxx表明Rauto-generated类的一个引用。这个类为应用程序资源收集引用。
3 添加事件处理程序
在任何应用程序中,交互都必须依托于事件和事件处理程序。举个例子,添加一个单击处理程序到droid图像视图并在用户每次触摸图片都会显示一条消息。在Java中,事件处理程序应采用以下形式:
private View.OnClickListener droidTapListener;
将之添加到MyActivity类并在InitializeAppmethod方法中初始化:
private void InitializeApp()
{
message = (TextView) findViewById(R.id.message);
droid = (ImageView) findViewById(R.id.imageView);
// Define and attach listeners
droidTapListener = new View.OnClickListener() {
public void onClick(View v) {
TapDroid();
}
};
droid.setOnClickListener(droidTapListener);
}
这段代码的产生的效果是,每当用户单击图像,TapDroidmethod都会被调用。
4 处理单击事件
TapDroidmethod只是用来记录用户触摸图片的次数,并显示一个汇总信息。需要添加到MyActivity类用来记录点击次数:
public class MyActivity extends Activity
{
private TextView message;
private ImageView droid;
private View.OnClickListener droidTapListener;
private int counter = 0;
// More code goes here ...
}
接下来,定义TapDroidas方法如下:
5 构建应用程序的最终版本
示例应用程序现已经完成,已经可以构建和部署到设备中。一旦准备好了,点击显示的图像,并查看用户界面的修改情况。
之后剩下的步骤就是如何编写单元测试并将应用程序到app store里面。