codecamp

IntelliJ IDEA使应用程序交互

应用程序交互

上一节内容中,我们介绍了一个 IntelliJ IDEA 示例 HelloDroid 应用程序,虽然我们的示例应用程序在这一点上功能完整,但它不支持任何形式的交互。要使应用程序支持点击事件,您需要编辑 src 文件夹中定义的 HelloDroid 类。

1.打开MyActivity类

在项目(Project)视图中,找到该 src | com.example.HelloDroid 文件夹下的 HelloDroid.java 文件并单击它:

IntelliJ IDEA使应用程序交互

2.添加对视觉元素的引用

在 Android 系统中,您需要明确获取对可视元素的引用,以便以编程方式对它们进行操作。您需要在活动类上定义私有成员以容纳这些引用,然后在从 onCreate 内部调用的新创建的方法中初始化这些成员。

  1. 将以下代码添加到 HelloDroid 类中:
    private TextView message;
    private ImageView droid;
  2. 在 OnCreate 中添加一个称为 InitializeApp 的新方法的调用。IntelliJ IDEA 会立即检测到此方法丢失,并建议为您生成该方法:
    IntelliJ IDEA使应用程序交互
  3. 在该 InitializeApp 方法中,为私有成员分配对可视元素的引用:
    message = (TextView) findViewById(R.id.message);
    droid = (ImageView) findViewById(R.id.imageView);
    该表达式 R.id.xxx 表示自动生成的 R 类的成员。

3.添加一个事件处理程序

在应用程序中,没有事件和事件处理程序,就不可能进行交互。举个例子,让我们添加一个点击处理程序到 droid 图像视图,并在用户每次触摸图像时显示一条消息。

在 Java 中,事件处理程序采用以下形式:

private View.OnClickListener droidTapListener;

将该成员添加到 HelloDroid 类中并在该 InitializeApp 方法中对其进行初始化。您的代码现在应该看起来如下所示:

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);
}

这段代码的净效果是,每次用户点击图像时,都会调用该 TapDroid 方法。

4.处理“Click”事件

  1. 该 TapDroid 方法只计算用户触摸图像的时间,并显示一条消息。您需要向 HelloDroid 类添加新的私有成员以统计点击次数:
    public class MyActivity extends Activity
    {
    private TextView message;
    private ImageView droid;
    private View.OnClickListener droidTapListener;
    private int counter = 0;
    
    // More code goes here ...
    }
  2. 接下来,定义如下所示的 TapDroid 方法:
    private void TapDroid() {
    counter++;
    String temp;
    switch (counter)
    {
    case 1:
    temp = "once";
    break;
    case 2:
    temp = "twice";
    break;
    default:
    temp = String.format("%d times", counter);
    }
    message.setText(String.format("You touched the droid %s", temp));
    }

5.构建应用程序并在设备上启动它

您的示例应用程序现在已经完成。您可以构建并将其部署到 Android 设备。

  1. 创建运行/调试配置并在目标设备下选择 USB 设备。
  2. 通过 USB 电缆将 Android 设备连接到计算机。如果设备第一次连接,请等到所有驱动程序安装完毕。
  3. 如果这是您第一次在 Android 应用程序存储外部署应用程序,请在您的设备上启用 USB 调试模式。在 Android 4.2 或更高版本上,请执行以下操作:
    • 打开设备的设置。
    • 滚动到“关于手机(About phone)”或“关于平板电脑(About tablet)”,然后点击它。
    • 滚动到底部并点击 Build number 7次,直到您看到“您是开发人员!” 信息。通过这样做,您可以在设备上解锁 USB 调试模式。
    • 现在导航到:设置| 开发人员选项| 调试| USB调试(Settings | Developer Options | Debugging | USB Debugging),让您的手机部署非打包应用程序。
  4. 确保在编辑器右上角的下拉列表中选择了相应的运行/调试配置,然后单击运行图标:
    IntelliJ IDEA使应用程序交互
  5. 当应用程序在设备上成功部署后,点击图像并查看用户界面的更改:
    IntelliJ IDEA使应用程序交互
IntelliJ IDEA:使用文本编辑器编辑UI布局
IntelliJ IDEA创建单元测试
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

IntelliJ IDEA的一般准则

什么是IntelliJ IDEA项目

使用IntelliJ IDEA的意图行为

IntelliJ IDEA使用运行/调试配置

特定于VCS的程序

IntelliJ IDEA语言和特定框架指南

IntelliJ IDEA的数据库和SQL功能

IntelliJ IDEA使用之JavaServer Faces(JSF)

IntelliJ IDEA:分析PHP应用程序的性能

IntelliJ IDEA:调试PHP应用程序

IntelliJ IDEA:适用于PHP的Google App Engine

IntelliJ IDEA更多内容

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }