W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
上一節(jié)內(nèi)容中,我們介紹了一個 IntelliJ IDEA 示例 HelloDroid 應(yīng)用程序,雖然我們的示例應(yīng)用程序在這一點上功能完整,但它不支持任何形式的交互。要使應(yīng)用程序支持點擊事件,您需要編輯 src 文件夾中定義的 HelloDroid 類。
在項目(Project)視圖中,找到該 src | com.example.HelloDroid 文件夾下的 HelloDroid.java 文件并單擊它:
在 Android 系統(tǒng)中,您需要明確獲取對可視元素的引用,以便以編程方式對它們進行操作。您需要在活動類上定義私有成員以容納這些引用,然后在從 onCreate 內(nèi)部調(diào)用的新創(chuàng)建的方法中初始化這些成員。
private TextView message;
private ImageView droid;
message = (TextView) findViewById(R.id.message);
droid = (ImageView) findViewById(R.id.imageView);
該表達式 R.id.xxx 表示自動生成的 R 類的成員。在應(yīng)用程序中,沒有事件和事件處理程序,就不可能進行交互。舉個例子,讓我們添加一個點擊處理程序到 droid 圖像視圖,并在用戶每次觸摸圖像時顯示一條消息。
在 Java 中,事件處理程序采用以下形式:
private View.OnClickListener droidTapListener;
將該成員添加到 HelloDroid 類中并在該 InitializeApp 方法中對其進行初始化。您的代碼現(xiàn)在應(yīng)該看起來如下所示:
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);
}
這段代碼的凈效果是,每次用戶點擊圖像時,都會調(diào)用該 TapDroid 方法。
public class MyActivity extends Activity
{
private TextView message;
private ImageView droid;
private View.OnClickListener droidTapListener;
private int counter = 0;
// More code goes here ...
}
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));
}
您的示例應(yīng)用程序現(xiàn)在已經(jīng)完成。您可以構(gòu)建并將其部署到 Android 設(shè)備。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: